这是我的程序
CREATEPROCEDURE mysp
@id int
@param1 int
@param2 int
@param3 datetime
@param4 bit
AS
DECLARE @tv TABLE
(
param1 INT
)
INSERT INTO @tv ( param1 )
SELECT param1 FROM tbl1 WHERE id = @id and IsActive = 1
INSERT INTO tbl2
(
id
,param1
,param2
,param3
,param4
)
VALUES
(
// all recors from @tv
,@param1
,@param2
,@param3
,@param4
)
@tv将有多个记录我想将@tv插入的param1的每个值与其他参数param1,param2,param3,param4一起插入到另一个表中。像这样的东西
有没有办法做到这一点。我不想使用任何光标。
感谢。帮助将非常感激。
答案 0 :(得分:1)
在我看来,你可以将整个事情简化为:
CREATE PROCEDURE mysp
@id INT ,
@param1 INT ,
@param2 INT ,
@param3 DATETIME ,
@param4 BIT
AS
INSERT INTO tbl2
( id ,
param1 ,
param2 ,
param3 ,
param4
)
SELECT param1 ,
@param1 ,
@param2 ,
@param3 ,
@param4
FROM tbl1
WHERE id = @id
AND isActive = 1
GO
答案 1 :(得分:0)
像这样更改你的第二个插页。
INSERT INTO tbl2
(id,param1,param2,param3,param4)
SELECT param1,@param1,@param2,@param3,@param4
FROM @tv
或者您可以直接从insert
执行tbl1
,无需声明表变量(@tv)
INSERT INTO tbl2
(id,param1,param2,param3,param4)
SELECT param1,@param1,@param2,@param3,@param4
FROM tbl1 WHERE id = @id and IsActive = 1