需要帮助才能将脚本名称作为变量与手动输入

时间:2011-12-28 18:46:45

标签: sql

每次运行脚本时都会存储一个表。我的问题是我必须在'????中手动输入脚本名称,并且我正在寻找一种方法,因此它会自动将脚本名称传递给insert语句。我当前的脚本是(见下文)< / p>


declare @ScriptName varchar(100)

--Replace ???? with the script name being executed
Set @ScriptName = '?????'

insert into dbhistory (dbh_memo, dbh_user, dbh_nowversion)
                        Values(@ScriptName, 'Boss','Version 758')

2 个答案:

答案 0 :(得分:1)

如果你想获取存储过程的名称(我不知道你的意思是“脚本”),如果这是SQL Server,你可以使用它:

SET @ScriptName = OBJECT_NAME(@@PROCID)

答案 1 :(得分:0)

您可以将当前查询存入存储过程:

CREATE PROCEDURE dbhistoryUpdate
  @ScriptName varchar(100)
AS
BEGIN
  INSERT INTO dbhistory (
    dbh_memo, 
    dbh_user, 
    dbh_nowversion
  )
  VALUES (
    'Executing Script ' + @ScriptName,
    'Boss',
    'Version 758'
  );
END

然后你就可以像这样调用它:

EXEC dbhistoryUpdate 'your_value'