每次运行脚本时都会存储一个表。我的问题是我必须在'????中手动输入脚本名称,并且我正在寻找一种方法,因此它会自动将脚本名称传递给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')
答案 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'