在表中指定位置添加字段
来源:互联网 发布:怎样安装网络监控系统 编辑:程序博客网 时间:2024/05/17 03:03
--开启系统表写开关
exec sp_configure 'allow updates',1 reconfigure with override
go
/*--在指定位置添加字段
添加字段到表中的指定位置
注意,字段定义必须符合 alter table add ...的规定
如果超过这个范围,则在表的尾部添加字段
一次只能添加一个字段,和 alter table 的限制完全一样
--使用示例
exec p_addfield 'tb','field1 varchar(20)','field2'
--*/
CREATE proc p_addfield
@tbname sysname,--表名
@fd_define nvarchar(1000), --字段定义(必须是合法的字段定义)
@Ins_fd nvarchar(30) --被插入字段將放在Ins_fd字段前面
as
declare @s nvarchar(4000),@colid int
if not Exists(select 1 from sysobjects where name=@tbname and xtype='U')--isnull(objectproperty(object_id(@tbname),'IsUserTable'),0)=0
begin
print (@tbname+'表不存在,請核實')
return
end
IF not Exists(select 1 from syscolumns where id=object_id(@tbname) and name=@Ins_fd)
begin
print (@tbname+'不存在'+@Ins_fd+'字段,請核實')
return
End
--开启系统表写开关
exec sp_configure 'allow updates',1 reconfigure with override
set xact_abort on
begin tran
--添加字段
select @colid=(select colid from syscolumns where id=object_id(@tbname) and name=@Ins_fd)
set @s='alter table ['+replace(@tbname,']',']]')+'] add '+@fd_define
Exec (@s)
update syscolumns set colid=colid+1 where id=object_id(@tbname) and colid>=@colid
update syscolumns set colid=@colid where id=object_id(@tbname)
and colid=(select max(colid) from syscolumns where id=object_id(@tbname))
commit tran
if @@error=0
print ('字段插入成功')
Else
print ('字段插入失敗')
--开启系统表写开关
exec sp_configure 'allow updates',0 reconfigure with override
go
--开启系统表写开关
exec sp_configure 'allow updates',0 reconfigure with override
go
- 在表中指定位置添加字段
- 在表中指定位置加上一个字段
- 在数组中指定位置添加和删除元素
- 使用JavaScript在表中指定位置插入一行
- mysql数据库在表中指定位置增加一列
- 向xml文档中指定位置上添加节点
- SQL2008 在一个表中指定的列位置插入一个新列的方法
- 在屏幕中指定位置输出自定义字体文字
- 在嵌套循环中指定跳出循环的位置
- 在数组中指定的位置插入一个数.
- 删除链表中指定位置的元素
- oracle--删除表中指定字段重复值
- Linq 中查询一个表中指定的字段
- Mysql查询表中指定字段出现字符串次数
- 删除数据库中所有表中指定的字段
- 【数据库】SQL导入CSV到表中指定部分字段
- Yii: 返回数据表中指定字段以及添加自定义字段值
- Yii: 返回数据表中指定字段以及添加自定义字段值
- [转] 通过 PHP 和 Sajax 使用 Ajax(二)
- 泡泡堂、QQ堂游戏通信架构分析
- 向着新的目标,前进...
- [转]通过 PHP 和 Sajax 使用 Ajax (一)
- 不要作温水里的那只青蛙
- 在表中指定位置添加字段
- Google发布IM软件--Talk
- 互联网的基础,应该建立在“提高生产率”上,而不是“玩”上
- [转]Linux入侵检查
- [转]Windows平台九点提升权限终极技巧
- 真英雄--石达开
- 真正的牛人,真的让人高山仰止
- 用户行为模式分析及作用------搜索引擎研究之四
- [转]PHP 序列化(serialize)格式详解