我有一个存储过程:
CREATE PROCEDURE MyProc
(
@Param1 [datetime],
@Param2 [nvarchar](20),
@Param3 [nvarchar](20),
@Param4 [nvarchar](20),
@Param5 [nvarchar](20),
)
AS
BEGIN
INSERT INTO MyTable1
(
Field1,
Field2,
Field3,
Field4,
Field5
)
SELECT
@Param1,
@Param2,
@Param3,
Field12,
'constantValue'
FROM MyTable2
WHERE Field13 = @Param4
END
我如何更改存储的proc,以便它插入到
Field5
的MyTable1
中而不是constantValue
,而是另一个查询最后一个参数MyTable2
(@Param5
)的结果?即:FROM MyTable2
WHERE Field13 = @Param5
最佳答案
INSERT INTO MyTable1
(
Field1,
Field2,
Field3,
Field4,
Field5
)
SELECT
@Param1,
@Param2,
@Param3,
Field12,
(
select field_name from MyTable2 where Field13 = @Param5
)
FROM
MyTable2
WHERE
Field13 = @Param4
END
或声明一个新变量:
SET @newparam = (SELECT field_name FROM MyTable2 WHERE Field13 = @Param5 )
然后将此新参数插入insert语句中。