0

我有大约 100 个数据库。在每个数据库中,都使用了一个 SP Proc1,它从执行一些其他操作的多个表中删除数据。我正在研究另一个对所有这些数据库通用的过程,我也需要从表中删除数据。例如,下面的 sp 从 DB! 中删除 T1 和 T2 表,但对于 DB@,它可能会从 T1 和 T3 中删除

USE DB1
GO
CREATE PROCEDURE PROC1
AS 
BEGIN
...
DELETE FROM T1
DELETE FROM T2
...
END

我正在研究对所有数据库都通用的过程,并将从同一个表列表中删除(如果 db 是 DB1,则为 T1 和 T2,如果 db 是 DB2,则为 T1 和 T3)

我希望这能解释我回答他们的问题。谢谢

4

2 回答 2

0

您可以使用动态 SQL。

例如:

declare @sql nvarchar(100)
select @sql = 'delete from ' + @tableName
exec sp_executesql @sql

尽管我不一定会毫无保留地建议这种通用方法。

于 2013-09-13T12:13:24.487 回答
0
CREATE PROCEDURE PROC1
AS 
BEGIN
...
DELETE FROM DB1..T1
DELETE FROM DB1..T2
DELETE FROM DB2..T1
DELETE FROM DB2..T3
...
END
于 2013-09-13T12:51:42.907 回答