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 回答