2015-11-02 60 views
-2

我有50列临时表在表列追加值。最后一列用于存储前49列的验证结果。我想为最后一列中的所有列附加验证结果。即在这49列中有25列(例如,col1,col2,col3 ... col25),这是强制性的。现在我想在最后一列中添加的错误信息(例如COL1是强制性的,COL2是强制性的,COL3是强制性... col25是必须的),如果任何强制性列的为空。SQL Server存储过程:根据具体的情况

我怎样才能做到这一点在存储过程?

+1

eeeeh ???什么?? –

+0

3 downvotes没有建议OP如何使这个问题更好?这不是很有帮助。 – mikeagg

回答

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 + 
+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 

(取决于你是否需要清除任何或以前的错误信息)。