22

現在のデータベース ( ) で更新スクリプトを実行する必要がありますALTER DATABASE...が、その名前を暗黙的に使用することはできません。関数を使用して現在のデータベース名を取得し、内部で使用することは可能ALTER DATABASEですか (Sql Server 2005 以降) ? を使用してみdb_name()ましたが、うまくいきません。

select db_name();作品

ALTER DATABASE db_name() ...動作しません

4

3 に答える 3

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 に答える