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

标签 sql-server

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

我正在尝试将服务器名和数据库名称传递给存储过程,该存储过程按如下方式进行一些日志记录

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

但我一直收到这个错误 -

Msg 102, Level 15, State 1, Line 10
Incorrect syntax near 'db_id'.

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

谢谢

最佳答案

试试这个:

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

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

关于sql-server - SQL Server - 将服务器和数据库传递给存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487105/

相关文章:

sql-server - TSQL授予所有表读写权限

sql-server - 从 Azure VM 使用 SQL AZure 进行复制

mysql - 具有自动增量列的插入性能

sql - 我可以在 SQL Server 2005 中选择查询的 where 条件中使用列号而不是列名吗?

sql - 从所有表和所有具有指定列名的数据库中查找列名 SQL Server

sql-server - LTRIM 和 RTRIM 精确修剪哪些字符?

SQL Server - 获取作业历史记录详细信息

sql-server - 如何使用 T-SQL 或 sys View 获取 SQL Server 登录审核设置

java - 从数据库生成模型类

sql-server - 空间查询 : A . 执行用户定义的例程或聚合 "geography"期间发生 NET Framework 错误: