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是字段的名称。