我有一个存储过程:
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
我如何更改存储过程以便它插入到 MyTable1
的 Field5
而不是 constantValue
而是另一个查询的结果使用最后一个参数 (@Param5
) 到 MyTable2
?
即:
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 )
然后将这个新参数插入到插入语句中。
关于sql - 使用来自另一个表的查询结果值向表中插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214580/