我已经创建了一个调查解决方案,它工作得很好。所有问题都有多个选项可供选择作为答案。我想要实现的是,当某个选项被保存为答案时,另一个表的一个或多个值将被更新。要更新的一个或多个表可能会因用户的回答而异,列的数据类型也可能会有所不同。
我正在考虑使用元数据表,在此示例中为AffectedData,其中包含有关表、值和数据类型的信息。像这样的伪代码:
CREATE TABLE AffectedData
ID int
TableName nvarchar(50) NOT NULL -- table to update
ColumnName nvarchar(50) NOT NULL -- the col to update
DataType nvarchar(50) NOT NULL -- the col data type
DataValue nvarchar(50) NOT NULL -- the value to update with
Operation int --insert or update
当插入答案时,触发器或过程可能会查询此表,并通过使用某些条件逻辑将DataValue转换为正确的数据类型,使用DataType作为提示,然后插入或更新到TableName中指定的表。换句话说,我假设我必须使用动态 SQL,使用 sp_executesql 来执行语句。
这是可行的方法还是有其他明智的方法来实现这一目标?