sql server对字段的添加修改删除、以及字段的说明

来源:asp之家 时间:2012-01-05 18:50:52 

 代码如下:


--新增表字段
ALTER procedure [dbo].[sp_Web_TableFiled_Insert]
(
@TableName varchar(100),
@FieldName varchar(100),
@FieldExplain varchar(200),
@DataType varchar(100),
@ConnectTableName varchar(100),
@FieldLength int,
@NewsID int output
)
as
begin transaction mytran
declare @errorSum int
if not exists (SELECT * FROM syscolumns where id=object_id(@TableName) AND name=@FieldName)
begin
insert tb_TableField
(
TableName,
FieldName,
FieldExplain,
DataType,
ConnectTableName,
FieldLength,
UserSetSign
)
values
(
@TableName,
@FieldName,
@FieldExplain,
@DataType,
@ConnectTableName,
@FieldLength,
'1'
)
declare @sql varchar(8000)
--判断类型
if(@DataType='decimal')
begin
set @sql = 'alter table ' + @TableName +' add ' + @FieldName +' ' + @DataType +'(' +Convert(varchar,@FieldLength)+',2'+')'
end
else if(@DataType='varchar')
begin
set @sql = 'alter table ' + @TableName +' add ' + @FieldName +' ' + @DataType +'(' +Convert(varchar,@FieldLength)+')'
end
else
begin
set @sql = 'alter table ' + @TableName +' add ' + @FieldName +' ' + @DataType
end
exec(@sql)
EXECUTE sp_addextendedproperty N'MS_Description', @FieldExplain, N'user', N'dbo', N'Table', @TableName, N'column' , @FieldName;
set @errorSum=@errorSum+@@error
set @NewsID=0;
end
else
begin
set @NewsID=1;
end
if(@errorSum>0)
begin
rollback tran
end
else
begin
commit tran mytran
end
--修改表字段
ALTER procedure [dbo].[sp_Web_TableFiled_Update]
(
@TableName varchar(100),
@FieldName varchar(100),
@FieldExplain varchar(200),
@DataType varchar(100),
@ConnectTableName varchar(100),
@FieldLength int,
@ID int,
@NewsID int output
)
as
begin transaction mytran
declare @fname varchar(100)
declare @errorSum int
--先取出表中以前的字段名称
select @fname=FieldName from tb_TableField where ID=@ID
declare @pstid int
declare @sql varchar(8000)
--再根据字段名称取出tb_PaySystemToLocation中对应的ID
select @pstid=ID from tb_PaySystemToLocation where LocationField=@fname
set @sql = 'sp_rename '+CHAR(39)+@TableName+'.['+@fname+']'+CHAR(39)+',' +char(39)+@FieldName+char(39)+',' + char(39)+'COLUMN' +CHAR(39)
exec(@sql)
update tb_TableField
set TableName=@TableName,
FieldName=@FieldName,
FieldExplain=@FieldExplain,
DataType=@DataType,
ConnectTableName=@ConnectTableName,
FieldLength=@FieldLength
where ID=@ID
--修改字段说明
EXECUTE sp_updateextendedproperty N'MS_Description', @FieldExplain, N'user', N'dbo', N'Table', @TableName, N'column' , @FieldName;
--EXEC sp_updateextendedproperty 'MS_Description',@FieldExplain,'user',dbo,'table',@TableName,'column',@FieldName
set @NewsID=0;
set @errorSum=@errorSum+@@error
if(@@ERROR>0)
begin
rollback tran
end
else
begin
commit tran mytran
end
-删除表字段
ALTER procedure [dbo].[sp_Web_TableFiled_Delete]
(
@ID int,
@NewsID int output
)
as
begin transaction mytran
declare @fname varchar(100)
declare @tablename varchar(100)
declare @pstid int
declare @sql varchar(8000)
declare @errorSum int
--取出字段名,表名
select @fname=FieldName,@tablename=TableName from tb_TableField where ID=@ID
--取出tb_PaySystemToLocation的ID
select @pstid=ID from tb_PaySystemToLocation where LocationField=@fname
delete from tb_TableField where ID=@ID
set @sql='ALTER TABLE ' +@tablename+ ' DROP COLUMN '+ @fname
exec(@sql)
set @errorSum=@errorSum+@@error
set @NewsID=0;
if(@errorSum>0)
begin
rollback tran
end
else
begin
commit tran mytran
end

标签:sql,server,字段
0
投稿

猜你喜欢

  • 每个分类取最新的几条的SQL实现代码

    2012-08-21 10:57:18
  • 一个数组随机不重复问题

    2008-09-02 20:05:00
  • 简单介绍各种浏览器中的本地存储方法

    2012-04-26 16:37:34
  • ASP实现类似Java中的Linked HashMap类

    2010-04-03 20:49:00
  • asp函数转换xml中的实体字符[转义符]

    2008-10-16 17:07:00
  • asp如何在页面中实现对电子信箱的访问?

    2010-06-26 12:34:00
  • 何时将数据装载到Application 或 Session 对象中去?

    2009-12-03 20:17:00
  • 排版自适应提升可访问性

    2009-04-08 12:47:00
  • CSS背景图片的运用优化HTTP连接数

    2008-09-04 21:38:00
  • SQL Server 2000日志转移实现高可用性

    2009-01-20 15:04:00
  • 帮助你分析MySQL的数据类型以及建库策略

    2009-02-23 17:39:00
  • asp 分页函数,可以显示 1,2,3,4,5... 前十页,后十页,下一页,上一页

    2009-07-05 18:34:00
  • 如何了解SQL的执行频率

    2009-08-26 15:17:00
  • 交互设计规范原则

    2011-09-30 11:52:12
  • sql之IN和BETWEEN条件运算

    2007-09-11 13:35:00
  • 数字格式化转换

    2010-08-03 12:22:00
  • 用Asp+XmlHttp实现RssReader功能

    2008-07-09 12:20:00
  • 主流浏览器性能比较

    2009-10-19 14:34:00
  • sql 自定义百分比转换小数函数代码

    2011-09-30 11:54:01
  • ASP去掉字符串头尾连续回车和空格的Function

    2011-04-03 11:13:00
  • asp之家 网络编程 m.aspxhome.com