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

所属分类: 数据库 / MsSql 阅读数: 1491
收藏 0 赞 0 分享
复制代码 代码如下:

--新增表字段
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 聚焦索引对非聚集索引的影响

本篇文章对SQL Server的聚焦索引和非聚集索引进行简单分析,从而总结出聚焦索引对非聚集索引的影响。有兴趣的朋友可以看下
收藏 0 赞 0 分享

浅析SQL Server的聚焦使用索引和查询执行计划

本文通过介绍默认使用索引、强制使用聚集索引、强制使用非聚集索引让我们知道对于检索所有列结果集使用主键的聚集索引是最佳选择。有兴趣的朋友可以看下
收藏 0 赞 0 分享

详解SQL Server中的数据类型

本文主要讲解了SQL中的数据类型以及几个需要注意的地方,简短的内容,深入的理解。有兴趣的朋友可以看下
收藏 0 赞 0 分享

浅析SQL Server的分页方式 ISNULL与COALESCE性能比较

本文上述重点讲述了SQL Server的分页方式,COALESCE和ISNULL函数区别之处,简短的内容,深入的理解。有兴趣的朋友可以看下
收藏 0 赞 0 分享

浅述SQL Server的聚焦强制索引查询条件和Columnstore Index

本文主要讲了强制使用索引条件来进行查询,当对于使用默认创建索引进行查询计划时觉得不是最优解,可以尝试使用强制索引来进行对比找出更好得解决方案。简短的内容,深入的理解.有兴趣的朋友可以看下
收藏 0 赞 0 分享

详解SQL Server的聚焦过滤索引

本文主要讲解了通过过滤索引来提高查询性能,同时也给出了其不同的场景以及其使用优点和明显的缺点。简短的内容,深入的理解,有兴趣的朋友可以看下
收藏 0 赞 0 分享

解析SQL Server聚焦移除(Bookmark Lookup、RID Lookup、Key Lookup)

本文主要讲解索引性能优化,着重对Bookmark Lookup、RID Lookup、Key Lookup三者进行移除的实现进行解析,以此来提高查询性能。希望对大家有所帮助
收藏 0 赞 0 分享

SqlServer 注释符 单行注释与多行注释

这篇文章主要介绍了SqlServer 注释符 单行注释与多行注释,需要的朋友可以参考下
收藏 0 赞 0 分享

SQL设置SQL Server最大连接数及查询语句

今天遇到了关于Sql Server最大连接数(Max Pool Size)的问题,后来通过查找一些资料解决了,所以想着总结下关于SQL Server最大连接数的内容,所以这篇文章主要介绍了SQL设置SQL Server最大连接数与查询语句,有需要的朋友们可以参考借鉴。
收藏 0 赞 0 分享

浅谈SQL Server交叉联接 内部联接

本文主要讲了SQL Server的交叉联接和内部联接,同时也给出了使用需要注意的地方。有需要的朋友可以看下
收藏 0 赞 0 分享
查看更多