我想在我的数据库中插入一个新列,如果它没有先前插入的话 我的专栏看起来像这样
ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 tinyint not null default 0
我希望只有当列不在表
中时才插入列我的代码行只插入它但不检查它是否存在
答案 0 :(得分:2)
你可以试试这个。
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
答案 1 :(得分:1)
试试这个:
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
答案 2 :(得分: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
答案 3 :(得分:-1)
测试在该模式中该表是否存在该列
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