13

DB に、現在 として定義されている列がありますNOT NULL。を許可するようにこの列を更新したいと思いますNULLs

これを行うには次のスクリプトがありますが、以前に変更されている可能性があるため、列が既にNULL(または) であるかどうかを最初に確認したいと思います。NOT NULL

 ALTER TABLE [dbo].[aud]
 ALTER COLUMN [actname] nvarchar(50) NULL

どんな助けでも感謝します。

4

3 に答える 3

7
select is_nullable from sys.columns c inner join sys.tables t on
t.object_id = c.object_id where t.name = 'aud' and c.name = 'actname'

BITnull 可能かどうかを表します。

したがって、次のようにスイッチを入れることができます

IF EXISTS(SELECT * from sys.columns c inner join sys.tables t on
    t.object_id = c.object_id where t.name = 'aud' and c.name = 'actname' AND
    is_nullable = 1)
    BEGIN
      --What to do if nullable
    END
ELSE
    BEGIN
      --What to do if not nullable
    END
END

もちろん、テーブルと列が存在することを前提としています...

于 2013-06-17T13:49:27.363 に答える
3

既に Nullable になっている場合、列を Nullable から Nullable に変更しても悪影響はないため、実際にはこれを行う必要はありません。

ただし、次のクエリで実行できます。

SELECT is_nullable 
FROM sys.columns 
WHERE object_id=object_id('YourTable') AND name = 'yourColumn'
于 2013-06-17T13:51:05.743 に答える