繁体   English   中英

如果列不存在则插入

[英]Insert column if it doesn't exist

如果之前没有插入,我正在尝试在我的数据库中插入一个新列。 我的专栏看起来像这样

ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 tinyint not null default 0

我希望只有当它不在表中时才插入该列。

我的代码行只插入它但不检查它是否存在。

如果您使用的是 MS SQL 服务器,那么您可以像下面这样操作:

IF COL_LENGTH('tSafeUnit', 'HasAccess24_7') IS NULL
BEGIN
    ALTER TABLE dbo.tSafeUnit 
    ADD HasAccess24_7 tinyint not null default 0
END

试试这个:

IF (SELECT COUNT(*) FROM syscolumns WHERE name = 'HasAccess24_7'
AND OBJECT_NAME(object_id) = 'tSafeUnit') = 0
BEGIN
    ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 tinyint not null default 0
END

你可以试试这个。

IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'HasAccess24_7' AND TABLE_NAME = 'tSafeUnit')
   AND EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'tSafeUnit')
BEGIN
    ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 TINYINT NOT NULL DEFAULT 0
END

test 是该模式中该表的列

if not exists ( select 1 
                from information_schema.columns 
                where table_schema = 'dbo' 
                and table_name = 'tSafeUnit' 
                and column_name = 'HasAccess24_7')
begin
    ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 TINYINT NOT NULL DEFAULT 0;
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM