我正在運行一個批量更新腳本,其中 @masterNameID 在 (21,22,23) 中,但是當我運行此代碼段時出現語法錯誤;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@MasterNameID AS INT in (21,22,23)
,@RowCount AS INT
我嘗試使用下面的方法宣告一個臨時表,但仍然無法運行;
Declare @MasterNameTlb table (MasterNameID INT (5))
Insert into @MasterNameTlb (MasterNameID) values (21,22,23)
Set @MasterNameID AS INT = select MasterNameID from @MasterNameTlb
關于如何讓它運行或者是否有更有效的方法來為更新腳本宣告多個值的任何想法?
uj5u.com熱心網友回復:
看起來您正在嘗試將多個值插入到表變數中。正確的語法是:
Declare @MasterNameTlb table (MasterNameID INT); -- use primary key?
Insert into @MasterNameTlb (MasterNameID) values (21),(22),(23);
select MasterNameID
from @MasterNameTlb AS t;
目前還不清楚你想用這張桌子做什么,但你可以像其他任何人一樣加入它。
uj5u.com熱心網友回復:
試試這些:
DROP TABLE IF EXISTS [#MasterName];
GO
-- Example 1 into a TEMP table
Select [MasterName].[ID] INTO [#MasterName] FROM ( VALUES (21),(22),(23) )[MasterName]([ID]);
Select [TBL]= '[#MasterName]', * from [#MasterName];
-- Example 2 into a DECLARE table
Declare @MasterName TABLE ([ID] INT);
INSERT INTO @MasterName([ID])
Select [MasterName].[ID] FROM ( VALUES (21),(22),(23) )[MasterName]([ID]);
Select [TBL]= '@MasterName', * from @MasterName;
uj5u.com熱心網友回復:
您是否嘗試更新其他表(此處未顯示),其中值位于 (21,22,23) 中?你的臨時表想法可以作業。創建臨時表后,您將執行如下更新:
update mytable
set somecolumn = somevalue
where somekey in (
select * from @MasterNameTlb
);
如果這不是您想要做的,也許可以在問題中添加更多細節。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/510530.html
標籤:sqlsql服务器
上一篇:設定ParentID
