小编Sea*_*anR的帖子

使用动态 SQL 在数据库之间切换

我有一个涉及在多个数据库之间执行各种命令的过程 - 但是,当我使用动态 SQL 通过“使用 @var”更改数据库时,它实际上并没有更改数据库。

在 [test_db] 中执行:

declare @currentDB varchar(max)
declare @sql varchar(max)

set @currentDB =  DB_NAME()
set @sql = 'use  [' + @currentDB +']'

use master

exec(@sql)

select  DB_NAME()
Run Code Online (Sandbox Code Playgroud)

返回 [Master] 作为当前数据库名称 - 如果我将其use [test_db]作为命令而不是动态放置,则它返回正确的名称。

有没有办法做到这一点,可以在数据库之间正确切换?

sql-server dynamic-sql sql-server-2008-r2

9
推荐指数
2
解决办法
2万
查看次数