參數化數據庫我需要定義在這樣的查詢數據庫作爲變量:如何在分佈式查詢
insert into Database1.dbo.Table1
select * from Database2.dbo.Table1
在我的情況下,所有的數據庫具有相同的架構。
我可以當然動態SQL做的,但這種方法有一個語法,如:
insert into Database1.dbo.Table1
select * from @ChosenDatabase.dbo.Table1
?
謝謝
參數化數據庫我需要定義在這樣的查詢數據庫作爲變量:如何在分佈式查詢
insert into Database1.dbo.Table1
select * from Database2.dbo.Table1
在我的情況下,所有的數據庫具有相同的架構。
我可以當然動態SQL做的,但這種方法有一個語法,如:
insert into Database1.dbo.Table1
select * from @ChosenDatabase.dbo.Table1
?
謝謝
你試圖實現的是不可能的;你必須使用動態SQL:
DECLARE @SQLQuery varchar(300)
DECLARE @TableName varchar(100)
SET @TableName = ChosenDatabase.dbo.Table1
SET @SQLQuery = 'INSERT INTO Database1.dbo.Table1 SELECT * FROM ' + @TableName
EXEC(@SQLQuery);
Declare @dbname varchar(200)
Declare @sql varchar(1000)
now comes dynamic sql
set @sql='select * from '@dbname+'dbo.yourtable';
儘量使用動態SQL
declare @ChosenDatabase varchar(100)='dbname'
DECLARE @SQL NVARCHAR(MAX)
SET @SQL= 'select * from '+ @ChosenDatabase+'.dbo.Customer'
--SELECT @SQL
EXEC SP_EXECUTESQL @SQL
動態SQL是唯一的可能性,如果您是直接推你的查詢數據庫。 –
這裏有什麼問題可以在動態sql的幫助下做到這一點.. –
@sandeeprawat我問,因爲我想知道是否有可能沒有動態SQL,因爲腳本需要從管理工作室運行,而從軟件使用動態sql是很好的,從管理工作室它更棘手 – LaBracca