ALTER当前数据库中不使用它的名字(ALTER current database without

2019-08-06 10:33发布

我需要运行当前数据库更新脚本( ALTER DATABASE... ),但无法使用隐其名称。 可以使用一些功能来获取当前数据库的名称和内部使用ALTER DATABASE (SQL Server 2005及以上)? 我试图使用db_name()但不工作。

select db_name(); 作品

ALTER DATABASE db_name() ...不起作用

Answer 1:

你需要使用类似

declare @dbname varchar(100)
set @dbname=quotename(db_name())
exec('alter database '+@dbname+' ...');

或者..更简单

set @sql='alter database '+quotename(db_name())+' ...';
exec(@sql)


Answer 2:

其实更多的东西像这可能是一个更好一点,如果你改变当前数据库:

ALTER DATABASE CURRENT SET COMPATIBILITY_LEVEL = 90



Answer 3:

试试这个

DECLARE @DBName sysname;
SET @DBName = (SELECT db_name());
DECLARE @SQL varchar(1000);
SET @SQL = 'ALTER DATABASE '+@DBName+' .......'

拉吉



文章来源: ALTER current database without using its name