0
我有這樣的動態查詢備案取
DATABSE 1 的場景插入到表:
ID Person
1 John
插入一條記錄之前,我必須確保人已經存在這是handeled在其他分區
數據庫2;
Person Ou
JOhn 1
Shyam 2
數據庫3:
Person Ou
Ram 5
....
一旦記錄存在我要插入在該數據庫中相同的記錄。如果什麼都不存在,那麼輸入的錯誤是無效的。
我已經試過這個代碼
Select *,
row_number() over(order by name) 'R'
into #temp
from sys.databases
where database_id not in (1,2,3,4,db_id(db_name()))
Declare @int i =1
declare @person varchar(100) = person from inserting (nolock)
declare @dbname varchar(max)
Declare @sql nvarchar(max)
while (@i <= (Select max(R) from #temp))
begin
Set @dbname = (Select name from #temp where R = @i)
Set @Sql = 'if exists (Select 1 from '''+ @dbname+'''..person where person = +'''@person'''+)'
execute sp_executesql @sql
Set @i = (Select max(R) from #temp))+2
else
set @i = @i+1
end
if @i> (select MAX(R)+1 from #temp)
begin
SET @sql = 'insert into ''' [email protected]+'''..person Select ID,person from person'
execute sp_executesql @sql
end
else
raiserror('No record esxists.',16,1)
但我仍無法插入即使記錄存在記錄。任何人都可以使這個查詢更好或任何建議是最受歡迎的。
不僅有兩個數據庫。如果我知道數據庫我確定。我可以簡單地使用synonms,但我不知道有多少數據庫在那裏,如果客戶端請求創建一個新的數據庫,我的查詢應該處理它,這就是我使用sys.databases消除系統和當前數據庫的原因。 – Azar