表增加字段存储过程

转载 2007年09月28日 15:04:00


--exec usp_Table_AddField 'a', 'RIGHT2','char(1) default ''''' 
 
/* 
Author: LB, Date : 2005-04-12 
Desc  : 用于增加表字段,包括已复制的表和未复制的表  
*/ 
 
CREATE proc dbo.usp_Table_AddField 
@TableName varchar(50), 
@FieldName varchar(50), 
@FieldAttribute varchar(200) 
as 
set nocount on 
declare @errMsg nvarchar(400) 
set @errMsg = N'表
'+@TableName +N'字段'+@FieldName+N'增加成功!' 
 
if not exists(select name from sysobjects where xtype = 'U' and name = @TableName) 
begin 
    set @errMsg = N'表
'+@TableName+ N'不存在, 请检查!' 
    print @errMsg 
    return 
end 
 
if exists(select l.name from sysobjects l inner join syscolumns r on l.id = r.id and l.name = @TableName and l.xtype ='U' and r.name = @FieldName) 
begin 
    set @errMsg = N'表
'+@TableName+N'中字段'+@FieldName+ N'已存在, 不能增加!' 
    print @errMsg 
    return 
end 
 
if CHARINDEX('CHAR', @FieldAttribute, 1) > 0 
   set @FieldAttribute = substring(@FieldAttribute,1,  CHARINDEX(')',@FieldAttribute, 1)) +'  COLLATE SQL_Latin1_General_CP1_CI_AS ' + 
     substring(@FieldAttribute, CHARINDEX(')',@FieldAttribute,1)+1, len(@FieldAttribute)-CHARINDEX(')',@FieldAttribute,1)) 
 
if exists(select * from sysobjects where xtype='U' and replinfo != 0 and name = @TableName) 
    exec sp_repladdcolumn @TableName, @FieldName, @FieldAttribute 
else 
    exec('alter table
'+@TableName + ' add '+ @FieldName +' '+@FieldAttribute
 
if @@error != 0 
    set @errMsg = N'表
'+@TableName +N'字段'+@FieldName+N'增加失败,请检查!' 
 
print @errMsg 
 
 


GO
 

相关文章推荐

自己写的一个存储过程例子,用来增加字段

-- =============================================  -- Author:    -- Create date:   -- Descripti...

更新所有指定表时间字段及增加一天存储过程

更新存储表采集时间为当前系统时间 create or replace procedure P_Update is v_sql varchar2(1000); begin declare...

SQL存储过程之删除指定表中指定字段所有约束

CREATE PROCEDURE dropconstraint @tb varchar(100),@fd varchar(100) AS declare @tbname sysname,@fdnam...
  • iowns
  • iowns
  • 2012年04月26日 15:55
  • 246

在mysql上使用存储过程给相应的表加入字段

在mysql上使用存储过程给相应的表加入字段 程序升级需要给mysql的数据库加上特定字段以供升级需要 环境 mysql5.5 数据库名 thams 需要修改的数据库表名 %_document (...

Sql Server 不常见应用之一:获取表的基本信息、字段列表、存储过程参数列表

【推荐】Sql Server 不常见应用之一获取表的基本信息、字段列表、存储过程参数列表 ——通过知识共享树立个人品牌。    一、获取表的基本信息SELECT [TableName] = [Tabl...

oracle存储过程将某张表一个字段的多值分开成多条数据插入到一张新表

create or replace PROCEDURE PRO_MANDATESCOPE (dataid in varchar2,tablename in varchar2 ) AS ...

SQL Server 学习笔记④ 查询某个数据所在数据库表中的哪个字段上出现过的存储过程

--2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型:1为文字类型、2为数值类型 @str nvarcha...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:表增加字段存储过程
举报原因:
原因补充:

(最多只允许输入30个字)