2012-08-02 87 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

回答

相关问题