批量删除 添加 表主键 sql-- 存储过程

sql 批量操作添加/ 删除 表主键

直接上代码把:  是存储过程哦 ,

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[prc_name] (
@nameinfo nvarchar(50) output
)
AS
declare @Key NVARCHAR(MAX) --创建参数 返回创建主键
declare @tab NVARCHAR(MAX) --创建参数 返回 表
declare @tabs NVARCHAR(MAX) --创建参数 返回 表
IF
EXISTS(SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE [email protected])
BEGIN
set @Key=(SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE [email protected])
SET @tab=(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE [email protected])
PRINT(‘表‘[email protected]+‘存在主键名为:‘[email protected])
END
ELSE
BEGIN
SET @tabs=(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE [email protected])
declare @b NVARCHAR(MAX) --创建参数 返回 表
declare @name NVARCHAR(MAX)
SET @name=‘BPMID‘
set @b=‘ALTER TABLE ‘[email protected]+‘ ADD ‘[email protected]+‘ INT IDENTITY(1,1) PRIMARY KEY‘;
exec SP_EXECUTESQL @b
PRINT(‘添加主键成功‘)
END
--------------添加 主键
exec prc_name‘a‘
exec prc_name‘b‘

------- 批量删除 主键 存储过程

------删除主键

ALTER TABLE a DROP COLUMN BPMID; -- -- 删除表字段

alter table a drop constraint PK_b -- 删除主键约束

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME=‘b‘ --获取主键

go
if exists(select*from sysobjects where name=‘proc_k‘)
drop procedure proc_k
go
create proc proc_k (
@name nvarchar(50)
)
AS
declare @SNAME NVARCHAR(MAX)
set @SNAME=(
SELECT B.NAME AS 主键名`
FROM SYSOBJECTS A
JOIN SYSOBJECTS B
ON A.ID=B.PARENT_OBJ
AND A.XTYPE=‘U‘ AND B.XTYPE=‘PK‘
and A.NAME in (@name)
)
declare @key NVARCHAR(MAX) --获取主键
set @key=(SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE [email protected])--获取 主键名
declare @a NVARCHAR(MAX) --先删除 主键约束
set @a=‘alter table ‘[email protected]+‘ drop constraint ‘[email protected]+‘‘
exec SP_EXECUTESQL @a --执行
--再删除表
declare @b NVARCHAR(MAX)
SET @b= ‘ALTER TABLE ‘[email protected]+‘ DROP COLUMN ‘[email protected]+‘‘ -- -- 删除主键字段
exec SP_EXECUTESQL @b
PRINT(‘删除主键成功‘)

---------- 删除主键----------
go
exec proc_k‘a‘
exec proc_k‘b‘

原文地址:https://www.cnblogs.com/zonzi/p/12583167.html

时间: 2024-11-05 16:40:52

批量删除 添加 表主键 sql-- 存储过程的相关文章

mysql 如何修改 删除 添加 表主键

1  创建表: create table 表名称(字段1 类型(长度) 约束, 字段2 类型(长度) 约束, 字段3 类型(长度) 约束, 字段4 类型(长度) 约束, primary key(字段4) ): 2 如果发现主键设置错了,应该是字段1是主键,但如今表里面已经有好多数据了,不能再删除表再重建了,仅仅在这基础上改动表结构. 2-1先删除主键:alter table 表名称 drop primary key; 2-2在增加主键 :alter table 表名称 add primary k

删除ORECLE表主键ID的索引

假如有个表:T_GOODS_LIST,主键索引是:PK_GOODS_LIST_ID,有个普通索引:IDX_GOODS_TYPE. 删除普通索引SQL: DROP INDEX IDX_GOODS_TYPE 删除主键索引: 因为通常我们会给主键ID一些约束,索引直接删除的话会出错,我们应该先接触ID的约束关联: ALTER TABLE T_GOODS_LIST DROP CONSTRAINT PK_GOODS_LIST_ID 原文地址:https://www.cnblogs.com/whx20100

SQL批量删除用户表(先删除所有外键约束,再删除所有表)

--批量删除用户表 --1.删除外键约束DECLARE c1 cursor for     select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '    from sysobjects     where xtype = 'F'open c1declare @c1 varchar(8000)fetch next from c1 into @c1while(@@fetch_status=0

批量删除MSSQL 中主外键约束

转自: http://www.maomao365.com/?p=813 在制作 MSSQL同步工具的时候,发现由于主外键的约束,导致数据同步异常,所有我们需要把 读数据库里面的主外键约束,进行批量删除操作. 1 如何批量查询数据库的主外键? 在MSSQL2005以上版本中,系统提供一个系统视图 sys.foreign_keys 可以查询出系统所有的外键约束2 如何批量删除数据库的主外间键? -----------------------------------------------------

SQLITE数据表主键设置Id自增方法

SQLITE数据表主键设置Id自增方法 标签: sqliteintegerinsertnulltableapi 2010-01-12 08:39 35135人阅读 评论(8) 收藏 举报  分类: SQL(11)  版权声明:本文为博主原创文章,未经博主允许不得转载. 搞定了一个困扰许久的问题,原来sqlite中的主键也是可以设置为自增的:)方法就是声明为 INTEGER PRIMARY KEY 的字段可以自动增加.    网上查到资料说,从 SQLite 的 2.3.4 版本开始,如果将一个表

主表和子表主键设计

将主表主键设置为ID,另外将子表主键设置为AID,子表的外键ID和主表一样.那么当发生对主表记录进行删除操作,可以方便的对关联的子表数据一并删除! declare @selectStr nvarchar(1000) set @selectStr='delete from Bdrdrecord11 ' + @searchString+' delete from Bdrdrecords11 '+@searchString exec (@selectStr)

sql 解析字符串添加到临时表中 sql存储过程in 参数输入

sql 解析字符串添加到临时表中  sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表   FROM dbo.Func_SplitOneColumnTabel('001,gf', ',') select * from 表 where ID in (select id from 临时表) Create function [dbo].[Func_SplitOneColumnTabel] (@str nvarchar(max),@split v

Mybatis框架(9)---Mybatis自定义插件生成雪花ID做为表主键项目

Mybatis自定义插件生成雪花ID做为主键项目 先附上项目项目GitHub地址 spring-boot-mybatis-interceptor 有关Mybatis雪花ID主键插件前面写了两篇博客作为该项目落地的铺垫. 1.Mybatis框架---Mybatis插件原理 2.java算法---静态内部类实现雪花算法 该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用. 一.项目概述 1.项目背景 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主

使用GUID作为数据表主键的好处(转)

http://blog.itpub.net/3875/viewspace-789520/ 分类: 数据库开发技术 使用GUID作为数据表主键的好处 [@[email protected]] 使用GUID作为数据表主键的好处 数据表主健通常采用以下三种方式: 1.         自动递增值. 2.         唯一名称.这个是使用自己定义的算法来生成一个唯一序列号. 3.         GUID(全局唯一标识符). GUID与自动递增值及唯一名称比较 GUID 在客户端生成,由GUID的特