我是复杂数据库设计的新手。我目前正在进入一个项目,用户应该可以根据18列的组合检索说明。所以我的参数表有以下列
添加/修改指令时,他可以在上述每个参数中选择多个选项。存储过程将以可能的所有组合存储数据,以便于检索,因为在搜索(检索)期间,每个列中只选择一个选项。
对于相同的组合可以有多个指令,并且相同的指令可以应用于多个组合。
我已经以某种方式创建了SP来添加指令,但我现在已经被修改了。当我的网页将新组合传递给SP时,更新表的最佳方法是什么?
我可以删除所有现有行并为新组合创建新行,但我想维护创建日期并创建用户列。此外,还需要在单独的历史表中保留这些历史记录。
对不起问题的长度......并且,谢谢你的帮助。
答案 0 :(得分:2)
如果您尝试根据参数组合检索数据,则可以将参数设置为默认值为NULL,例如。
CREATE PROC spProcName
@FieldName INT = NULL
唯一要做的是设置语句的WHERE部分以查看参数值并比较它们以查看它们是否为空或者为空。
WHERE ((FieldName = @FieldName) OR (@FieldName IS NULL))
使用此方法查询表并使用默认参数值null以类似方式使用标准更新查询,但设置如下值:
FieldName = ISNULL(@FieldName, FieldName)
允许您仅更新给定参数。
希望这是你所追求的,如果需要,我可以提供一个完整的例子。
答案 1 :(得分:0)