小编Kev*_* M.的帖子

对不同的表执行相同的SQL语句

我有一个从多个表中删除数据的存储过程。除了表名外,SQL 都是一样的。

UPDATE desttable
SET desttable.reportarea = esz2reportarea.reportarea
FROM table1 AS desttable JOIN esz2reportarea ON desttable.subdivisn = esz2reportarea.esz
WHERE desttable.reportarea = ''

UPDATE desttable
SET desttable.reportarea = esz2reportarea.reportarea
FROM table2 AS desttable JOIN esz2reportarea ON desttable.subdivisn = esz2reportarea.esz
WHERE desttable.reportarea = ''

...

UPDATE desttable
SET desttable.reportarea = esz2reportarea.reportarea
FROM table10 AS desttable JOIN esz2reportarea ON desttable.subdivisn = esz2reportarea.esz
WHERE desttable.reportarea = ''
Run Code Online (Sandbox Code Playgroud)

我想重写它以使用某种循环,以便 SQL 只编写一次。(这是针对 SQL Server 2008R2。)

需要更新的表列表将保持不变;如果要更新的表列表有任何更改,那将是由于应用程序升级,我必须重新确定当时需要修改哪些表。要更新的表列表将放入临时表中。

SELECT * INTO #tablenames
FROM (VALUES ('table1'), ('table2'), ('table3')) AS …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2

4
推荐指数
1
解决办法
264
查看次数

标签 统计

sql-server ×1

sql-server-2008-r2 ×1

t-sql ×1