• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    调整SQLServer2000运行中数据库结构

    开发过程中的数据库结构结构,不可避免的会需要反复的修改。最麻烦的情况莫过于开发者数据库结构已经修改,而实际应用中数据库又有大量数据,如何在不影响 数据库中数据情况下,更新数据结构呢?当然,我们可以手工对应用数据库表结构各个添加、更正、删除的字段一一调整,这对一两个字段来说,是比较简单的,如 果改动比较大的时候,这个过程将是非常繁琐的。本文意在介绍使用SQLServer2000 T-SQL语句进行数据库结构调整,希望能够给各位带来些方便。下面以现有数据库表HR_User为例,讲解如何进行这类操作。

    HR_User现有结构:

    [UserId] [int] NOT NULL ,用户Id,主键 
    [UserName] [varchar] (50) NOT NULL ,用户姓名 
    

    一、数据库添加新字段

    现在,需要在HR_User中添加字段用户昵称[NickName] [varchar] (50) 不为空,出生日期[Birthday] [datetime] 不为空。
    在开发数据库中我们已经添加了这两个字段,在查询分析器或者企业管理器中生成新表的构造语句如下:

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[HR_User]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
    drop table [dbo].[HR_User] 
    GO 
    CREATE TABLE [dbo].[HR_User] ( 
    [UserId] [int] NOT NULL , 
    [UserName] [varchar] (50) COLLATE Chinese_PRC_CS_AS NOT NULL , 
    [NickName] [varchar] (50) COLLATE Chinese_PRC_CS_AS NOT NULL , 
    [Birthday] [datetime] NOT NULL 
    ) ON [PRIMARY] 
    GO 
    ALTER TABLE [dbo].[HR_User] ADD 
    CONSTRAINT [DF_HR_User_UserId] DEFAULT (0) FOR [UserId], 
    CONSTRAINT [DF_HR_User_UserName] DEFAULT ('') FOR [UserName], 
    CONSTRAINT [DF_HR_User_NickName] DEFAULT ('') FOR [NickName], 
    CONSTRAINT [DF_HR_User_Birthday] DEFAULT (getdate()) FOR [Birthday], 
    CONSTRAINT [PK_HR_User] PRIMARY KEY CLUSTERED 
    ( 
    [UserId] 
    ) ON [PRIMARY] 
    GO 
    exec sp_addextendedproperty N'MS_Description', N'出生日期', N'user', N'dbo', N'table', N'HR_User', N'column', N'Birthday' 
    GO 
    exec sp_addextendedproperty N'MS_Description', N'用户昵称', N'user', N'dbo', N'table', N'HR_User', N'column', N'NickName' 
    GO 
    exec sp_addextendedproperty N'MS_Description', N'用户Id', N'user', N'dbo', N'table', N'HR_User', N'column', N'UserId' 
    

    这时候,我们来构建应用数据库的修改语句,T-SQL修改表结构添加新字段语法为Alter TABLE TableName Add,这样我们要添加两个字段就应该这样写:

    Alter TABLE [dbo].[HR_User] Add
     [NickName] [varchar] (50) COLLATE Chinese_PRC_CS_AS NOT NULL DEFAULT(''),
     [Birthday] [datetime] NOT NULL DEFAULT(getdate())
    GO
    

     其实中间的语句只是简单的拷贝创建语句中对应两个字段的两句。再加上两句添加描述的语句,就大功告成。

    exec sp_addextendedproperty N'MS_Description', N'出生日期', N'user', N'dbo', N'table', N'HR_User', N'column', N'Birthday'
    GO
    exec sp_addextendedproperty N'MS_Description', N'用户昵称', N'user', N'dbo', N'table', N'HR_User', N'column', N'NickName'
    GO
    

     二、数据库修改字段
     现在我们发现UserName、NickName字段长度不够,需要修改为100

    Alter Table [HR_User] Alter
     Column [UserName] [varchar] (100) COLLATE Chinese_PRC_CS_AS NOT NULL
    GO
    
    Alter Table [HR_User] Alter
     Column [NickName] [varchar] (100) COLLATE Chinese_PRC_CS_AS NOT NULL
    GO
    

    您可能感兴趣的文章:
    • sqlserver 2008手工修改表结构,表不能保存的问题与解决方法
    • 还原sqlserver2008 媒体的簇的结构不正确的解决方法
    • 使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
    • SQLSERVER的非聚集索引结构深度理解
    • 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)
    上一篇:Select count(*)、Count(1)和Count(列)的区别及执行方式
    下一篇:介绍备份和还原MySQL数据的两种方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    调整SQLServer2000运行中数据库结构 调整,SQLServer2000,运,行中,