我不确定如何描述我想要做的事情,但无论如何我都会尝试,我有 2 个表,分别称为 XYZ 和 bckXYZ。bckXYZ 是为 XYZ 创建的备份表。它们具有相同的列,但列顺序不同。当我在 XYZ 上创建触发器(带星号)时,SQL 给了我一个与列顺序相关的错误。正如我所说,他们的列是相同的,但顺序不同!
我有两个选择,要么将列名一一放入选择脚本而不是使用星号,要么将 bckXYZ 的架构更改为 XYZ。
问题1:为什么触发器需要相同的列顺序?可笑吗?
问题 2:我需要做的是让他们的模式看起来一样,那么有没有脚本可以做到这一点?
不工作
ALTER TRIGGER [dbo].[XYZ_Ins]
ON [dbo].[XYZ]
FOR INSERT
AS
INSERT INTO dbo.bckXYZ
SELECT inserted.*
FROM inserted
有用
ALTER TRIGGER [dbo].[XYZ_Ins]
ON [dbo].[XYZ]
FOR INSERT
AS
INSERT INTO dbo.bckXYZ (a,b,c,d,e)
SELECT (a, b, c, d, e)
FROM inserted