我需要运行当前数据库更新脚本( ALTER DATABASE...
),但无法使用隐其名称。 可以使用一些功能来获取当前数据库的名称和内部使用ALTER DATABASE
(SQL Server 2005及以上)? 我试图使用db_name()
但不工作。
select db_name();
作品
ALTER DATABASE db_name() ...
不起作用
我需要运行当前数据库更新脚本( ALTER DATABASE...
),但无法使用隐其名称。 可以使用一些功能来获取当前数据库的名称和内部使用ALTER DATABASE
(SQL Server 2005及以上)? 我试图使用db_name()
但不工作。
select db_name();
作品
ALTER DATABASE db_name() ...
不起作用
你需要使用类似
declare @dbname varchar(100)
set @dbname=quotename(db_name())
exec('alter database '+@dbname+' ...');
或者..更简单
set @sql='alter database '+quotename(db_name())+' ...';
exec(@sql)
其实更多的东西像这可能是一个更好一点,如果你改变当前数据库:
ALTER DATABASE CURRENT SET COMPATIBILITY_LEVEL = 90
试试这个
DECLARE @DBName sysname;
SET @DBName = (SELECT db_name());
DECLARE @SQL varchar(1000);
SET @SQL = 'ALTER DATABASE '+@DBName+' .......'
拉吉