22

我需要在当前数据库 ( ALTER DATABASE...) 上运行更新脚本,但不能使用隐含的名称。是否可以使用某些函数来获取当前数据库名称并在内部使用ALTER DATABASE(Sql Server 2005 及更高版本)?我试过使用db_name(),但没有用。

select db_name();作品

ALTER DATABASE db_name() ...不工作

4

3 回答 3

58

实际上,如果您要更改当前数据库,则更像这样的东西可能会更好一些:

ALTER DATABASE CURRENT SET COMPATIBILITY_LEVEL = 90

于 2014-11-20T15:24:08.177 回答
22

你需要使用类似的东西

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

或者..更简单

set @sql='alter database '+quotename(db_name())+' ...';
exec(@sql)
于 2013-01-11T10:19:17.683 回答
0

试试这个

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

拉吉

于 2013-01-11T10:22:29.850 回答