我有一個動態查詢,我需要從不同的數據庫發送給數據庫的名稱作爲逗號分隔值和retreive數據選擇數據ü可以幫助我out..i有以下查詢從多個數據庫
Decalre @DBname nvarchar(max);
Declare @Selectstring nvarchar(max);
set @Selectstring='
select
Userid,
UserName,
CreatedOn,
IsActive as Status,
LastLoggedin
from
'[email protected]+'.dbo.UserDetails'
execute sp_executesql @[email protected]
我正在執行此使用動態query..i要發送的
set @dbname='dbname1,dbname2,dbname3'
每個數據庫都有此表@DbName價值,我想從不同databases..Please所有這些表中獲取數據幫助我如何做到這一點
試着讓它只與一個數據庫一起工作,然後你可以擴展該解決方案來使用分割字符串函數或類似方法在逗號分隔的字符串中循環數據庫名稱。 –
當像這樣使用動態SQL時,您應該始終注意不要將自己暴露給SQL注入,就像執行此類方法時常見的那樣。網上有幾個關於如何保護自己的例子,這超出了這個問題的範圍,但我覺得應該指出。一個簡單的例子是假設:'SET @ DBname ='dbname1; UPDATE dbname1.dbo.UserDetails SET IsActive = 1; SELECT * FROM dbname1''這仍然適用於您的示例,但會導致更改基礎數據 – Seph