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

时间:2024-01-25 23:43:41 


--新增表字段
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
标签:sqlserver,字段
0
投稿

猜你喜欢

  • php实现统计二进制中1的个数算法示例

    2024-06-05 09:39:05
  • Python动态加载模块的3种方法

    2023-12-22 21:33:29
  • JS获取网页图片name属性的方法

    2024-04-28 09:46:19
  • 带进度条的ASP无组件断点续传大文件下载

    2010-06-25 18:27:00
  • CSS布局之浮动(一)两列布局

    2008-08-18 21:24:00
  • 基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码

    2023-04-28 19:03:53
  • C#实现Excel表数据导入Sql Server数据库中的方法

    2024-01-19 01:19:01
  • win7+Python3.5下scrapy的安装方法

    2023-06-05 02:02:41
  • PHP获取客户端及服务器端IP的封装类

    2024-05-03 15:48:38
  • 安全校验Session验证码并避免绕开验证码攻击

    2022-06-30 20:15:41
  • Python打包方法Pyinstaller的使用

    2022-06-08 13:25:21
  • js省市联动效果完整实例代码

    2024-04-18 10:15:34
  • ASP连接SQL2005数据库连接代码

    2011-03-25 10:44:00
  • SQLSERVER对索引的利用及非SARG运算符认识

    2024-01-14 23:24:34
  • 基于python的多进程共享变量正确打开方式

    2022-02-12 10:30:53
  • MySQL中union和order by同时使用的实现方法

    2024-01-26 22:48:45
  • sql server利用不同语种语言显示报错错误消息的方法示例

    2024-01-23 17:40:39
  • Golang实现常见排序算法的示例代码

    2024-02-16 12:49:10
  • flash 挡住层的解决方法

    2022-09-01 17:24:39
  • Python中实现输入一个整数的案例

    2022-05-28 18:42:21
  • asp之家 网络编程 m.aspxhome.com