我有一个包含50列的临时表。最后一列用于存储先前49列的验证结果。我想为最后一列中的所有列附加验证结果。即,在这49列中,有25列(例如col1,col2,col3 ... col25)是强制性的。现在我想在最后一列中添加错误消息(例如,如果任何必需列为空,则col1是必需的,col2是必需的,col3是必需的,col3是必需的)。
如何在存储过程中执行此操作?
答案 0 :(得分:1)
这听起来不是一个聪明的主意。如果第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
(取决于您是否需要清除以前的任何错误消息)。
答案 1 :(得分:1)
请参阅此准则。 。
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 +