如何在IF ELSE SQL Server中使用UPDATE

时间:2019-06-27 01:36:48

标签: sql sql-server

我正在尝试检查给定表中是否存在一列。

当检查是否存在时,我想用值1更新该列,如果不存在,请创建并更新。

但是,每次运行错误时,该列仍然不存在。

在运行时,它首先考虑我对alter table的更新。

为了说明我正在尝试做的事情:

IF EXISTS( SELECT * FROM BANCO_DE_DADOS.INFORMATION_SCHEMA.COLUMNS 
            WHERE (TABLE_NAME) = 'MinhaTabela' 
            AND  (COLUMN_NAME) = 'CodZona'  )  

BEGIN
    UPDATE BANCO_DE_DADOS..MinhaTabela 
    SET CodZona = 1 
    WHERE CodZona < 1 OR CodZona IS NULL    
END

ELSE
BEGIN 

    ALTER TABLE BANCO_DE_DADOS..MinhaTabela
    ADD  [CodZona] [int] NULL

    UPDATE BANCO_DE_DADOS..MinhaTabela 
    SET CodZona = 1

END

错误:

Message 207, Level 16, State 1, Line 7
Invalid column name 'CodZona'.
Message 207, Level 16, State 1, Line 7
Invalid column name 'CodZona

'。

1 个答案:

答案 0 :(得分:0)

问题在于编译与执行查询。该错误在编译过程中出现。

您可以这样做:

Sub Decimals()
    If Not TypeOf Selection Is Range Then Exit Sub

    Dim rng As Range        
    For Each rng In Selection
        If IsNumeric(rng.Value) Then
            If rng.Value > 0.99999999 Then
                rng.NumberFormat = "#,#00"
            Else
                rng.NumberFormat = "0.00"
            End If
        End If
    Next
End Sub