我正在使用SQL Server 2008,并试图使用表变量向表中插入多行来创建语句。就目前来看,我必须在4个不同的地方插入信息(2个选择语句,1个插入和1个更新),但希望能够创建单个表变量,因此我只需输入信息一次。任何帮助/建议将不胜感激。使用表变量将多行插入到SQL Server表中
这是我试图改变的一个例子。
PRINT 'Before'
SELECT GROUPID, ModifiedBy, ModifiedDate
FROM TableXYZ
WHERE groupID in(ID1, ID2, ID3, ID4)
BEGIN TRAN
Insert into TableXYZ
(GROUPID)
VALUES
(ID1), (ID2), (ID3), (ID4)
UPDATE TableXYZ
SET existingdays = 15
,ModifiedBy = @userID
,ModifiedDate = @today
WHERE groupID in(ID1, ID2, ID3, ID4)
Set @RowCount = @@ROWCOUNT
PRINT 'After '
SELECT GROUPID, ModifiedBy, ModifiedDate
FROM TableXYZ
WHERE groupID in(ID1, ID2, ID3, ID4)
目前尚不清楚您试图实现的目标 - 为什么单个TVP能够替换两个选择,插入和更新? – Oded
你能解释一下你的问题吗? –
如果您想要使用变量AFAIK定位表,您需要在您的查询中使用CONCAT()来创建一个(准备好的)语句**来连接变量和所有其他查询代码。 – inhan