やりたいことをどのように説明するかわかりませんが、とにかく試してみます。XYZとbckXYZという2つのテーブルがあります。bckXYZは、XYZ用に作成されたバックアップテーブルです。それらは同じ列を持っていますが、列の順序は同じではありません。XYZでトリガー(アスタリスク付き)を作成すると、SQLで列の順序に関連するエラーが発生します。私が言ったように、それらの列は同じですが、順序は異なります!
2つのオプションがあります。アスタリスクを使用する代わりに、列名を1つずつselectスクリプトに入れるか、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