Sql 如何使用update with inserted table测试触发器脚本,我得到错误;无效的对象名称';插入“;
我希望能够编写一个单元测试脚本来显示代码中每个语句的结果。当我使用插入的表运行脚本时,消息显示“无效的对象名称‘插入’”。我发现现在测试逻辑的唯一方法是使用源表测试代码,然后在创建触发器时从源表更改为插入表。这将被用作一种控制,以将代码推广到qa和生产中。为插入表的触发器编写单元测试脚本的最佳方法是什么? sql server 2008rSql 如何使用update with inserted table测试触发器脚本,我得到错误;无效的对象名称';插入“;,sql,Sql,我希望能够编写一个单元测试脚本来显示代码中每个语句的结果。当我使用插入的表运行脚本时,消息显示“无效的对象名称‘插入’”。我发现现在测试逻辑的唯一方法是使用源表测试代码,然后在创建触发器时从源表更改为插入表。这将被用作一种控制,以将代码推广到qa和生产中。为插入表的触发器编写单元测试脚本的最佳方法是什么? sql server 2008r --insert test INSERT INTO SIS.dbo.People (First_Name,Middle_Name,Last_Name) SEL
--insert test
INSERT INTO SIS.dbo.People (First_Name,Middle_Name,Last_Name)
SELECT
T.ForeName
,T.Middle_Name
,T.Surname
FROM CRM.dbo.Contact1 C
INNER JOIN SIS.dbo.People P
ON P.People_ID = C.Key4
CROSS APPLY dbo.NameParser(C.Contact) T
WHERE C.Key1 = '76'
--insert reference inserted table
INSERT INTO SIS.dbo.People (First_Name,Middle_Name,Last_Name)
SELECT
T.ForeName
,T.Middle_Name
,T.Surname
FROM inserted i --change to inserted
INNER JOIN SIS.dbo.People P
ON P.People_ID = i.Key4
CROSS APPLY dbo.NameParser(i.Contact) T
WHERE i.Key1 = '76'
您需要在第一个
INSERT
上使用OUTPUT
子句。在该OUTPUT
子句中,inserted
将是一个“魔术”表,它将只存在于那里。但您可以使用它将输出到表变量中。在第二次插入中,您可以从该表变量中插入。好的,我创建了一个insertedcontact测试表,用于我的代码,我将尝试输出子句