熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

調整SQL Server 2000運行中數據庫結構

2022-06-13   來源: SQL Server 

  開發過程中的數據庫結構結構不可避免的會需要反復的修改最麻煩的情況莫過於開發者數據庫結構已經修改而實際應用中數據庫又有大量數據如何在不影響數據庫中數據情況下更新數據結構呢?當然我們可以手工對應用數據庫表結構各個添加更正刪除的字段一一調整這對一兩個字段來說是比較簡單的如果改動比較大的時候這個過程將是非常繁瑣的本文意在介紹使用SQLServer TSQL語句進行數據庫結構調整希望能夠給各位帶來些方便下面以現有數據庫表HR_User為例講解如何進行這類操作
  
  HR_User現有結構
  [UserId] [int] NOT NULL 用戶Id主鍵
  [UserName] [varchar] () NOT NULL 用戶姓名
  
  數據庫添加新字段
  
  現在需要在HR_User中添加字段用戶昵稱[NickName] [varchar] () 不為空出生日期[Birthday] [datetime] 不為空
  
  在開發數據庫中我們已經添加了這兩個字段在查詢分析器或者企業管理器中生成新表的構造語句如下
  
  if exists (select * from dbosysobjects where id = object_id(N[dbo][HR_User]) and OBJECTPROPERTY(id NIsUserTable) = )
  drop table [dbo][HR_User]
  GO
  
  CREATE TABLE [dbo][HR_User] (
  [UserId] [int] NOT NULL
  [UserName] [varchar] () COLLATE Chinese_PRC_CS_AS NOT NULL
  [NickName] [varchar] () 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 () 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 NMS_Description N出生日期 Nuser Ndbo Ntable NHR_User Ncolumn NBirthday
  GO
  exec sp_addextendedproperty NMS_Description N用戶昵稱 Nuser Ndbo Ntable NHR_User Ncolumn NNickName
  GO
  exec sp_addextendedproperty NMS_Description N用戶Id Nuser Ndbo Ntable NHR_User Ncolumn NUserId
  GO
  exec sp_addextendedproperty NMS_Description N用戶姓名 Nuser Ndbo Ntable NHR_User Ncolumn NUserName
  GO
  這時候我們來構建應用數據庫的修改語句TSQL修改表結構添加新字段語法為Alter TABLE TableName Add這樣我們要添加兩個字段就應該這樣寫
  Alter TABLE [dbo][HR_User] Add
  [NickName] [varchar] () COLLATE Chinese_PRC_CS_AS NOT NULL DEFAULT()
  [Birthday] [datetime] NOT NULL DEFAULT(getdate())
  GO
  其實中間的語句只是簡單的拷貝創建語句中對應兩個字段的兩句再加上兩句添加描述的語句就大功告成
  exec sp_addextendedproperty NMS_Description N出生日期 Nuser Ndbo Ntable NHR_User Ncolumn NBirthday
  GO
  exec sp_addextendedproperty NMS_Description N用戶昵稱 Nuser Ndbo Ntable NHR_User Ncolumn NNickName
  GO
  
  數據庫修改字段
  
  現在我們發現UserNameNickName字段長度不夠需要修改為
  Alter Table [HR_User] Alter
  Column [UserName] [varchar] () COLLATE Chinese_PRC_CS_AS NOT NULL
  GO
  
  Alter Table [HR_User] Alter
  Column [NickName] [varchar] () COLLATE Chinese_PRC_CS_AS NOT NULL
  GO
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22118.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.