我在尝试将SSMS的上下文动态更改为动态SQL中指定的数据库时遇到麻烦:
EXEC sys.sp_executesql N'USE db1 ' ;
它成功执行,但是SSMS的数据库上下文未更改。
我已经尝试过对上面的内容做一些细微的修改,就像这样
DECLARE @sql NVARCHAR(100) DECLARE @db NVARCHAR(50)
SET @db = N'db1' SET @sql = N'Use ' + @db
EXEC sp_executesql @sql
再次,它成功执行,但是数据库没有更改。
4
您不能在sp_executesql中更改SSMS中正在使用的会话的上下文。该上下文仅在动态SQL会话期间有效,而对于SSMS会话无效。
—
Lothar Kraner