我有一个用于创建表的SQL脚本,我希望除了几列之外的所有列的默认值为""其他列需要一个整数默认值为0
以下创建表.删除了一些列,因为有很多列
CREATE TABLE [dbo].[PMIPatients] ( [PID] [varchar](30) NOT NULL, [PatientFirstName] [varchar](30) NULL, [PatientLastName] [varchar](30) NULL, [PatientDOB] [varchar](30) NULL, [PatientDoctor] [varchar](30) NULL, [PatientDiet] [varchar](50) NULL, [PatientFallRiskLevel] [int] NULL, [BedId] [int] NULL, [BedDisplayInfo] TEXT NOT NULL DEFAULT '' CONSTRAINT [PK_HL7Patient] PRIMARY KEY CLUSTERED ([PID] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
我希望在所选列上设置不同的默认值,以下代码不起作用,因为它表示已经存在默认约束集.所以我认为我必须首先放弃约束.
ALTER TABLE [dbo].[PMIPatients] ADD DEFAULT ((0)) FOR [PatientFallRiskLevel]
http://www.w3schools.com/sql/sql_default.asp说以下代码应该能够删除这样的DEFAULT
ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT
但我在DEFAULT上收到语法错误
如何更改/删除特定列的DEFAULT约束
添加默认值时,应使用约束的名称.这样,您可以稍后通过名称引用这些约束.
ALTER TABLE [dbo].[PMIPatients] ADD CONSTRAINT [PatientFallRiskLevel_Default] DEFAULT ((0)) FOR PatientFallRiskLevel
然后你可以使用:
ALTER TABLE [dbo].[PMIPatients] DROP CONSTRAINT [PatientFallRiskLevel_Default]