SQL Server - 将服务器和数据库传递给存储过程

时间:2013-05-10 16:46:13

标签: sql-server

(请原谅问题的业余性质)

我正在尝试将servername和数据库名称传递给存储过程,该存储过程执行一些日志记录,如下所示

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

但我一直收到这个错误 -

  

Msg 102,Level 15,State 1,Line 10
  'db_id'附近的语法不正确。

我使用顶部的declare @dbname varchar(255) = db_name(db_id());然后使用它来使用它。但这似乎是一个不必要的变量。

由于

1 个答案:

答案 0 :(得分:1)

试试这个:

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

exec [dbo].[Logger]
      @Server = @servername,
      @Database = @dbname,
      @Task = 'Some task'