以下は、更新トリガーの代わりに私の一部です
CREATE TRIGGER TestDemo ON Consultants1 更新の代わりに なので DECLARE @Sql nvarchar(200), @TableName nvarchar(50), @FieldName nvarchar(100), @PKCols VARCHAR(1000), -- 主キー @Value nvarchar(100) SET @TableName = 'コンサルタント1' SET @FieldName = '表示名' SET @Value = 'Test123' SELECT * INTO #ins FROM 挿入 SELECT @PKCols = c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk 、 INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @テーブル名 AND CONSTRAINT_TYPE = '主キー' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME SELECT @Sql = 'UPDATE' + @TableName + 'SET' SELECT @Sql = @Sql + @FieldName + ' = ''' + @Value + '''' SELECT @Sql = @Sql + ' WHERE #ins.' + @PKCols + ' = ' + @TableName + '.' + @PKCols EXEC (@Sql)
トリガーはエラーなしで作成されます。今、次のクエリを実行しようとしています
UPDATE Consultants1 SET DisplayName = 'abcd' ここで、ConsIntID = 'Test123285'
次のようなエラーが表示されます。
メッセージ 4104、レベル 16、状態 1、行 1 マルチパート識別子「#ins.ConsIntID」をバインドできませんでした。
コードのどこが間違っているのか理解できませんでした。助けてください