有人可以向我解释下一个程序的作用吗?
CREATE PROCEDURE [add_100*Clients-runView2-del_50*Reductions] AS
DECLARE @procName NVARCHAR(100) = OBJECT_NAME(@@PROCID), @currentName NVARCHAR(50)
DECLARE @index int
INSERT INTO TestRuns (Description, StartAt, EndAt)
VALUES ('Add Clients - View 2 - Delete Reductions', GETDATE(), null)
DECLARE @currentID int
SET @currentID = (SELECT SCOPE_IDENTITY())
SET @index = CHARINDEX('-', @procName)
WHILE @index > 0
BEGIN
SET @currentName = SUBSTRING(@procName, 1, @index-1)
SET @procName = SUBSTRING(@procName, @index+1, (LEN(@procName) - @index))
SET @index = CHARINDEX('-', @procName)
EXEC @currentName
END
SET @currentName = @procName
EXEC @currentName
UPDATE TestRuns
SET EndAt = GETDATE()
WHERE TestRunID = @currentID
GO
我无法理解getDate是什么以及它如何影响表格。
答案 0 :(得分:1)
程序的目的在于
EXEC @currentName
。
我相信这是某种性能测试,您可以看到程序运行所需的时间
我猜你传递的是由-
分隔的某种过程名称,并解析每个过程并运行它们。
在运行它们时,您正在使用GetDate
记录您的时间开始,在运行完所有内容后,使用GetDate
结束运行。(如GetDate
为您提供当前时间,差异将告诉你运行所有程序需要多长时间。
您将该信息记录在名为audit
的{{1}}表中。