調整SQLServer2000執行中資料庫結構

2021-04-17 06:51:36 字數 2811 閱讀 2368

開發過程中的資料庫結構結構,不可避免的會需要反覆的修改。最麻煩的情況莫過於開發者資料庫結構已經修改,而實際應用中資料庫又有大量資料,如何在不影響資料庫中資料情況下,更新資料結構呢?當然,我們可以手工對應用資料庫表結構各個新增、更正、刪除的字段一一

調整,這對一兩個字段來說,是比較簡單的,如果改動比較大的時候,這個過程將是非常繁瑣的。本文意在介紹使用

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'

goexec sp_addextendedproperty n'ms_description', n'使用者暱稱', n'user', n'dbo', n'table', n'hr_user', n'column', n'nickname'

goexec sp_addextendedproperty n'ms_description', n'使用者id', n'user', n'dbo', n'table', n'hr_user', n'column', n'userid'

goexec sp_addextendedproperty n'ms_description', n'使用者姓名', n'user', n'dbo', n'table', n'hr_user', n'column', n'username'

go這時候,我們來構建應用資料庫的修改語句,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'

goexec 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

SQLSERVER2000技術規格

sqlserver2000技術規格 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔...

SQLSERVER2000啟動失敗

服務管理器中啟動sqlserver服務 彈出視窗的錯誤資訊是 本地計算機上的mssqlserver服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 效能日誌和警報 服務 1 解決方法 調整系統時間到你上一次能夠正常啟動的時間,啟動sqlserver服務,成功後,然後再把時間調回來。...

SQLSERVER2000技術規格

quote 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔案 32tb 夠大了吧,...