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

2022-05-24 0 891

复制代码 代码如下:

–新增表字段

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

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 MsSql sqlserver对字段的添加修改删除、以及字段的说明 https://www.niceym.com/60455.html