首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

USE XXX 中的变量使用有关问题

2012-02-02 
USE XXX 中的变量使用问题 declare@dbnamevarchar(50)set@dbname tjbusUSE@dbnameselect@dbnamego如上脚

USE XXX 中的变量使用问题

declare   @dbname   varchar(50)
set   @dbname= 'tjbus '
USE   @dbname
select   @dbname
go

如上脚本中,select   @dbname     可以被正确解释,但   USE   @dbname   ,却不能解释,如何解决在   USE   XXX   中的变量使用问题?

[解决办法]
注意:
EXEC( 'USE ' + @dbname)这样打开的数据库只在EXEC期间有效,也就是说EXEC中打开的数据库在EXEC结束之后就被自动关闭了,丝毫不影响当前打开的数据库.例如:
USE MASTER
declare @dbname varchar(50)
set @dbname= 'tjbus '
EXEC( 'USE ' + @dbname)
GO
EXEC之后当前的数据库仍旧是MASTER而不是tjbus.所以,使用变量方式打开数据库时,必须把对该数据库的操作一起放到EXEC中执行,例如:
declare @dbname varchar(50)
set @dbname= 'tjbus '
EXEC( 'USE ' + @dbname + ' select * from syscolumns ')


[解决办法]
学习

热点排行