数据库结构在开发过程中不可避免地需要反复修改,最麻烦的是修改了开发人员的数据库结构,但在实际应用中,数据库中有大量的数据。我们如何更新数据结构而不影响数据库中的数据当然,我们可以手动调整应用程序数据库表结构中添加、更正和删除的字段,这对于一个或两个字段来说比较简单。如果变化较大,过程会很繁琐。本文介绍了SQLServer2000数据库结构调整T-SQL语句的使用,希望能给你带来一些方便。以现有的数据库表hr_user作为一个例子来解释如何做这种类型的操作。

hr_user现有结构:




{用户名} { int }不为空,用户ID,主键
{用户名} { varchar }(50)不为空,用户名称



1。向数据库添加新字段

现在,你需要添加一个字段,用户昵称,昵称} { } { varchar(50),在hr_user是空的,和出生日期{生日} {日期}不是空的。

在开发数据库中,我们添加了这两个字段,在查询分析器或企业管理器中生成新表的构造语句如下所示:


如果存在(SELECT * FROM dbo.sysobjects id是object_id(N'{ } { }dbo。hr_user)和客体(ID)= 1)
删除表{ } { } hr_user dbo。

创建表({ } { } hr_user dbo。
{UserId} {int} NOT NULL,
{用户名} { varchar }(50)整理chinese_prc_cs_as不空,
{昵称} { varchar }(50)整理chinese_prc_cs_as不空,
{生日} { }无效的日期
在{主}上

修改表{ } { }添加hr_user dbo。
约束{ df_hr_user_userid }默认(0)为{用户名},
{ }默认约束df_hr_user_username(' ')为{用户名},
{ }默认约束df_hr_user_nickname(){ }为昵称,
CONSTRAINT {DF_HR_User_Birthday} DEFAULT (getdate ()) FOR {Birthday},
{ }主键约束pk_hr_user聚集
(
{用户名}
在{主}上

执行sp_addextendedproperty n'ms_description ','生日',n'user ',n'dbo ',n'table ',n'hr_user ',n'column ',n'birthday

执行sp_addextendedproperty n'ms_description ','用户昵称,n'user ',n'dbo ',n'table ',n'hr_user ',n'column ',n'nickname

执行sp_addextendedproperty n'ms_description ','用户ID,n'user ',n'dbo ',n'table ',n'hr_user ',n'column ',n'userid



此时,我们将构建应用程序数据库的修改语句。T-SQL修改表结构和添加新的字段语法修改表添加。所以我们需要添加两个字段。




修改表{ } { }添加hr_user dbo。
{昵称} { varchar }(50)整理chinese_prc_cs_as NOT NULL默认(''),
{生日} { }无效的默认日期(getdate())




事实上,中间语句只是语句的一个简单副本,用于创建两个字段的两个句子。




执行sp_addextendedproperty n'ms_description ','生日',n'user ',n'dbo ',n'table ',n'hr_user ',n'column ',n'birthday

执行sp_addextendedproperty n'ms_description ','用户昵称,n'user ',n'dbo ',n'table ',n'hr_user ',n'column ',n'nickname




两。修改数据库字段

现在我们发现用户名和昵称字段的长度是不够的,需要修改为100。




修改表{ }改变hr_user
{ } { }用户名列varchar(100)整理chinese_prc_cs_as不空


修改表{ }改变hr_user
{ } { }昵称列varchar(100)整理chinese_prc_cs_as不空