SqlServer增加欄位升級指令碼
阿新 • • 發佈:2018-12-22
1、在資料庫中增加一個儲存過程,以後該資料庫中新增欄位都可以呼叫此儲存過程來操作
USE [iponkan] --iponkan資料庫名 GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[ADDCOLUMN] --ADDCOLUMN儲存過程名 ( @piTableName sysname, --表名 @piColName varchar(50), --列名 @piTypeStr varchar(50) --欄位型別 ) as begin if not exists(select 1 from SYSOBJECTS a, SYSCOLUMNS b where a.ID = b.ID and a.NAME = @piTableName and b.NAME = @piColName) begin exec('alter table [' + @piTableName + '] disable trigger all') exec('alter table [' + @piTableName + '] add ' + @piColName + ' ' + @piTypeStr) exec('alter table [' + @piTableName + '] enable trigger all') end return(0) end
2、執行儲存過過程,增加欄位。(此處意思是:為student表增加一個name欄位,型別為varchar,長度50,允許為空)
EXEC ADDCOLUMN 'student', 'name', 'VARCHAR(50) NULL'
3、補充SYSOBJECTS和SYSCOLUMNS
- sysobjects系統物件表。該表中包含該資料庫中的所有物件,如有那些表 儲存過程 檢視 等資訊。ID就是物件的id,NAME是物件的名稱。
- sysolumns當前資料庫的所有欄位都保留在裡面。ID是該欄位所屬的表的ID,NAME是欄位的名稱。