以下是我的一部分而不是更新触发器
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”。
我不明白我的代码哪里出错了。请帮忙