1. 程式人生 > >SqlServer增加欄位升級指令碼

SqlServer增加欄位升級指令碼

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是欄位的名稱。