2012-08-02 55 views
0

我已經編寫了一個將一些數據從一個數據庫遷移到另一個數據庫的T-SQL腳本。 目前我正在通過使用動態sql來做到這一點。TSQL:用於訪問數據庫的變量(SQL Server 2008)

例如看到下面的代碼:

Declare @sqlquery nvarchar(4000) 
SET @sqlquery = N'SELECT * from ' + @LinkServerName + @SourceDatabaseName + '.dbo.Table' 
EXEC @sqlquery 

在這個例子中@LinkServerName是一個nvarchar變量,其存儲包含源數據庫的SQL Server的鏈接服務器的名稱。 @SourceDatabaseName是一個nvarchar變量,它存儲源數據庫的名稱。

我不喜歡那種方式。我更喜歡下面的代碼:

SELECT * from @SourceDatabase.dbo.Table 

這可能嗎?

預先感謝您。

+0

不,第二種方法**是無效的T-SQL **,因爲你不能在你的T-SQL語句中使用列或表名稱的變量。 – 2012-08-02 10:00:15

+0

[如何在t-sql中爲數據庫名稱使用變量](http://stackoverflow.com/questions/727788/how-to-use-variable-for-database-name-in-t-sql) – Pondlife 2012-08-02 21:29:01

回答

相關問題