3

(素人質問ですみません)

サーバー名とデータベース名を、次のようにログを記録するストアド プロシージャに渡そうとしています。

exec [dbo].[Logger]
      @Server = @@servername,
      @Database = db_name(db_id()),
      @Task = 'Some task';

しかし、私はこのエラーが発生し続けます -

メッセージ 102、レベル 15、状態 1、行 10
'db_id' 付近の構文が正しくありません。

私はこれをdeclare @dbname varchar(255) = db_name(db_id());上部で使用してから使用するようにしました。しかし、それは不要な変数のようです。

ありがとう

4

1 に答える 1

1

これを試して:

declare @servername varchar(100) = @@servername
declare @dbname = db_name(db_id())

exec [dbo].[Logger]
      @Server = @servername,
      @Database = @dbname,
      @Task = 'Some task'
于 2013-05-10T17:35:09.703 に答える