我有一个任意的值列表,我想用T-SQL在多个表中删除记录。我想在未来使用不同的值列表重用脚本。这仅仅是为了调试目的(我只是想清除记录,以便它们可以用新版本的软件重新导入),所以它不需要很漂亮。如何从多个表中删除基于任意值的数组?
到目前为止,我有:
DECLARE @RequestIDList table(Request_ID nvarchar(50) NOT NULL)
INSERT INTO @RequestIDList (Request_ID) VALUES
('00987172'),
('01013218'),
('01027886'),
('01029552'),
('01031476'),
('01032882'),
('01033085'),
('01034446'),
('01039261')
DELETE FROM Request WHERE Request_ID IN (SELECT Request_ID FROM @RequestIDList)
DELETE FROM RequestTest WHERE Request_ID IN (SELECT Request_ID FROM @RequestIDList)
看来工作,但有没有更好的办法?我似乎无法弄清楚如何直接在IN子句中使用变量(例如“WHERE Request_ID IN @RequestIDList”)。
尼斯通用模板。谢谢 – 2018-01-30 14:50:55