我有一个任意值列表,我想使用 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”)。