我有50列临时表在表列追加值。最后一列用于存储前49列的验证结果。我想为最后一列中的所有列附加验证结果。即在这49列中有25列(例如,col1,col2,col3 ... col25),这是强制性的。现在我想在最后一列中添加的错误信息(例如COL1是强制性的,COL2是强制性的,COL3是强制性... col25是必须的),如果任何强制性列的为空。SQL Server存储过程:根据具体的情况
我怎样才能做到这一点在存储过程?
我有50列临时表在表列追加值。最后一列用于存储前49列的验证结果。我想为最后一列中的所有列附加验证结果。即在这49列中有25列(例如,col1,col2,col3 ... col25),这是强制性的。现在我想在最后一列中添加的错误信息(例如COL1是强制性的,COL2是强制性的,COL3是强制性... col25是必须的),如果任何强制性列的为空。SQL Server存储过程:根据具体的情况
我怎样才能做到这一点在存储过程?
请参照本准则。 。 。
Update Table_Name
SET
[Column_Status] =
CASE
WHEN Column_1 IS NULL OR Column_1 = ''
THEN 'Column_1 is mandatory, ' ELSE '' END +
CASE
WHEN Column_2 IS NULL OR Column_2 = ''
THEN 'Column_2 is mandatory, ' ELSE '' END +
这是正确的..真棒..! –
这听起来不像是一个聪明的想法。如果第1至25列是强制性的,那么您应该考虑将它们声明为NOT NULL。
但是,如果你真的想要一个查询,将错误消息到ValidationResults列那就试试这个:
UPDATE YourTable SET ValidationResults =
CASE
WHEN (col1 is null) or (col2 is null) or (col3 is null) or (col4 is null) -- etc
THEN 'Your error message'
ELSE ''
END
或者干脆
UPDATE YourTable SET ValidationResults = 'Your error message'
WHERE (col1 is null) or (col2 is null) or (col3 is null) or (col4 is null) -- etc
(取决于你是否需要清除任何或以前的错误信息)。
eeeeh ???什么?? –
3 downvotes没有建议OP如何使这个问题更好?这不是很有帮助。 – mikeagg