sql给已有表添加主键
来源:互联网 发布:电脑录音软件推荐 编辑:程序博客网 时间:2024/06/08 04:46
/*ALTER TABLE [dbo].[cg_YearAssessZp] ALTER COLUMN YearAssessZpGUID UNIQUEIDENTIFIER NOT NULL;ALTER TABLE [dbo].[cg_YADetailHistory] ADD CONSTRAINT [PKC_cg_YADetailHistory] PRIMARY KEY CLUSTERED ([YearAssessZpGUID]) ON [PRIMARY];*/IF EXISTS(SELECT TOP 1 1 FROM sysobjects WHERE id=OBJECT_ID('proc_AddPrimaryKey') AND type='P')DROP PROCEDURE proc_AddPrimaryKey;GOCREATE PROCEDURE proc_AddPrimaryKey ( @tablename VARCHAR(40) , @pkname VARCHAR(40) )AS BEGIN IF NOT EXISTS ( SELECT TOP 1 1 FROM sys.columns WHERE object_id = OBJECT_ID(@tablename) AND name = @pkname ) BEGIN PRINT 'Not Exists PKName' RETURN END DECLARE @coltype VARCHAR(40); SELECT @coltype = b.name FROM syscolumns a , systypes b WHERE a.id = OBJECT_ID('test_test') AND a.name = 'id' AND a.xtype = b.xtype; IF NOT EXISTS ( SELECT c.name FROM sys.indexes a INNER JOIN sys.index_columns b ON a.object_id = b.object_id AND a.index_id = b.index_id INNER JOIN sys.columns c ON b.column_id = c.column_id AND b.object_id = c.object_id WHERE c.object_id = OBJECT_ID(@tablename) AND c.name = @pkname ) BEGINEXECUTE('ALTER TABLE [dbo].['+@tablename+'] ALTER COLUMN '+ @pkname +' '+ @coltype +' NOT NULL;'); EXECUTE('ALTER TABLE [dbo].['+@tablename+'] ADD CONSTRAINT [PKC_'+@tablename+'] PRIMARY KEY CLUSTERED (['+ @pkname +']) ON [PRIMARY];') PRINT 'Added PK Sussess(table:' + @tablename + ', column:' + @pkname + ')' ; ENDELSE PRINT 'PK Already Existed(table:' + @tablename + ', column:' + @pkname + ')' ; RETURN END;GO/*test data*/IF EXISTS(SELECT TOP 1 1 FROM sysobjects WHERE id=OBJECT_ID('test_test') AND type='U')DROP TABLE test_test;GOCREATE TABLE test_test (id UNIQUEIDENTIFIER , NAME VARCHAR(40));EXEC proc_AddPrimaryKey 'test_test','id';
1 0
- sql给已有表添加主键
- sql语句添加主键
- sql删除主键并添加主键
- SQL批量添加主键脚本
- sql添加主键外键
- 在线给重复记录列添加主键
- Oracle中给表添加主键、外键
- 如何给Sqlite添加复合主键
- 给一个表添加主键列
- Oracle中给表添加主键、外键
- Oracle中给表添加主键、外键
- Oracle中给表添加主键、外键
- Oracle 中给表添加主键、外键
- MySQL:给原有表主键 添加 AUTO_INCREMENT
- 给表添加记录时,在mapper.xml中配置sql,需要添加主键值的写法
- Sql Server批量删除主键,添加自增长主键
- SQL SERVER添加与删除主键约束
- sql 给表添加描述
- 《开始学Backbone.js》之第三章Backbone Models与Collections(一)
- Android左右滑动菜单(基于第三方Fragment框架设计)
- 分析iOS Crash文件:符号化iOS Crash文件的3种方法
- CF24B 模拟
- Shahidullah Shahid
- sql给已有表添加主键
- (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- 如何判断Linux 是32位还是64位
- 1060. Are They Equal (25)
- CALayer学习的第二章,只为自己记笔记,互相学习
- 在jsp页面中调用另外一个jap页面
- vs2003程序去只读和编译命令
- UML9种图中的序列图和协作图
- osg加载模型后使模型居中且以最佳大小显示