2

私がやりたいことは、列に値を追加することです。現在、列がまだ存在していない可能性があります。

したがって、その列が存在するかどうかを確認し、存在しない場合は追加してから値を挿入します。

IF COL_LENGTH('version', 'minor') = NULL
BEGIN
    ALTER TABLE version ADD minor INT null;
END
GO

UPDATE version SET minor= 4;

minor問題は、解析時に列が存在しないため、パーサーがこれについて不平を言うことです。

単一のスクリプトでこのパスを作成する方法はありますか?

4

1 に答える 1

4

次のいずれかを使用します。

SET ANSI_NULLS OFF
GO 
IF COL_LENGTH('version', 'minor') = NULL
BEGIN
    ALTER TABLE [version] ADD minor INT null;
END
GO

UPDATE [version] SET minor= 4;

また

IF COL_LENGTH('version', 'minor') IS NULL
    BEGIN
        ALTER TABLE [version] ADD minor INT null;
    END
    GO

    UPDATE [version] SET minor= 4;

と を比較しようとしてNULL = NULLいますANSI_NULLS ON

ラージ

于 2013-05-08T04:40:09.453 に答える