以下是我的一部分而不是更新触发器
CREATE TRIGGER TestDemo ON Consultants1 而不是更新 作为 声明 @Sql nvarchar(200), @TableName nvarchar(50), @FieldName nvarchar(100), @PKCols VARCHAR(1000), --主键 @Value nvarchar(100) SET @TableName = 'Consultants1' SET @FieldName = 'DisplayName' SET @Value = 'Test123' SELECT * INTO #ins FROM 已插入 选择 @PKCols = c.COLUMN_NAME 从 INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = '主键' 和 c.TABLE_NAME = pk.TABLE_NAME 和 c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME 选择@Sql = '更新' + @TableName + 'SET' 选择 @Sql = @Sql + @FieldName + ' = ''' + @Value + '''' 选择 @Sql = @Sql + 'WHERE #ins。' + @PKCols + ' = ' + @TableName + '.' + @PKCols 执行(@Sql)
创建触发器时没有任何错误。现在我正在尝试执行以下查询
更新顾问 1 SET DisplayName = 'abcd' 其中 ConsIntID = 'Test123285'
它给出了一个错误说:
消息 4104,第 16 层,状态 1,第 1 行 无法绑定多部分标识符“#ins.ConsIntID”。
我不明白我的代码哪里出错了。请帮忙