0

私は約100のデータベースを持っています。各データベースでは、SP Proc1 が使用され、いくつかのテーブルからデータが削除され、他の操作も実行されます。私もテーブルからデータを削除する必要があるこれらすべてのデータベースに共通の別の手順に取り組んでいます。たとえば、以下の sp は T1 および T2 テーブルを DB! から削除しますが、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 に答える