更改SQL表以添加列

Mas*_*yah 1 sql database sql-server

我目前有一个有四列的表 - 我想添加第五列但有一些麻烦.

我在sql server studio management 2008中打开表,我添加了列信息,如下所示:

CREATE TABLE [dbo].[Case]
(
    CaseId                  UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
    CaseNumber              NVARCHAR(50) NOT NULL,
    CourtId                 INT NOT NULL,
    DateOpened              DATETIME NOT NULL,
) 
Run Code Online (Sandbox Code Playgroud)

我的补充:

CREATE TABLE [dbo].[Case]
(
    CaseId                  UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
    CaseNumber              NVARCHAR(50) NOT NULL,
    CaseName                NVARCHAR(50),
    CourtId                 INT NOT NULL,
    DateOpened              DATETIME NOT NULL,
)
Run Code Online (Sandbox Code Playgroud)

添加CaseName列后,我尝试在Management Studio中执行该表,但是我收到错误消息"数据库中已经有一个名为'Case'的对象." 我尝试保存然后构建我的数据库希望列将被添加,但这不成功.我尝试了一个新的查询并编写'Alter table'案例"添加CaseName nvarchar(50)但又没有运气.它显示该文件是使用新列更改的,因为我保存了它但在构建我的整个数据库之后它没有进行任何更改.任何有用的提示都会很棒.

Lit*_*les 8

你想ALTER,如下:

ALTER TABLE [dbo].[Case] ADD CaseName NVARCHAR(50)
Run Code Online (Sandbox Code Playgroud)

更好的是,您可以先检查列的存在:

if not exists (SELECT 1 FROM sysobjects INNER JOIN syscolumns ON 
    sysobjects.id = syscolumns.id 
    WHERE sysobjects.name = N'Case' AND syscolumns.name = N'CaseName')
ALTER TABLE [dbo].[Case] ADD CaseName NVARCHAR(50)
Run Code Online (Sandbox Code Playgroud)