SQL学习----添加列到指定位置
2013-09-18 15:06
211 查看
--开启系统表写功能以便创建存储过程 EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE GO CREATE PROC sp_addColumn @TableName sysname, --要添加字段的表名 @FieldDefine nvarchar(1000), --要添加的列的定义,定义必须符合ALTER TABLE tbname ADD规范 @Position int=-1 --添加列位置,其值为1~表的总列数,比如1,表示添加为第1列, 如果@Position无效,则仅添加列 AS IF ISNULL(OBJECTPROPERTY(OBJECT_ID(@TableName),'IsUserTable'),0)=0 BEGIN RAISERROR(N'无效的表名 "%s"',12,16,@TableName) return END --添加字段 DECLARE @s nvarchar(4000) SET @s=N'ALTER TABLE '+QUOTENAME(@TableName)+N' ADD '+@FieldDefine BEGIN TRAN EXEC sp_executesql @s IF @@ERROR=0 BEGIN DECLARE @maxcolid int SELECT @Position=ISNULL(@Position,0),@maxcolid=MAX(colid) FROM syscolumns WHERE id=OBJECT_ID(@TableName) IF @Position>0 AND @Position<@maxcolid UPDATE syscolumns SET colid=CASE colid WHEN @maxcolid THEN @Position ELSE colid+1 END, colorder=CASE colid WHEN @maxcolid THEN @Position ELSE colid+1 END WHERE id=OBJECT_ID(@TableName) AND colid>=@Position COMMIT TRAN END ELSE ROLLBACK TRAN GO --关闭系统表写功能 EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE
相关文章推荐
- arcgis for android 学习 - (5) 在地图指定位置添加“标记“,并尝试选中它
- arcgis for android 学习 - (5) 在地图指定位置添加“标记“,并尝试选中它
- arcgis for android 学习 - 在地图指定位置添加“标记“,并尝试选中它
- mysql字符串如何得到指定字符最后的位置,学习SUBSTRING_INDEX的用法
- android学习——popupWindow 在指定位置上的显示
- SQL Server 2000如何用SQL语句在在指定位置插入列
- 在桌面添加命令行窗口并指定起始位置
- SQL在指定列后添加新的列
- 光标指定位置添加字符,适用于普通textbox ,textarea,不适用于文本编辑器插件
- the linux Command Line 学习笔记--mysql命令行导入sql文件到指定数据库的方法
- [学习记录]removeObjectAtIndex:删除指定位置的元素
- C# 给站点指定位置的某种格式的图片添加水印
- 使用CSS给ASP.NET中的Button按钮添加一个指定位置的图片
- ArcGIS API for JavaScript 4.2学习笔记[14] 弹窗的位置、为弹窗添加元素
- 学习 SQL 语句 - Select(1): 指定表
- android学习——popupWindow 在指定位置上的显示
- c# 添加图片水印,可以指定水印位置+生成缩略图
- SQL SERVER 使用T-SQL还原Bak数据库到指定位置
- android学习——popupWindow 在指定位置上的显示