iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >记录sql server 的批量删除主外键的sql语句
  • 683
分享到

记录sql server 的批量删除主外键的sql语句

摘要

select b.name TableName,a.name TypeName,a.* from sysobjects a inner join sysobjects b on a.parent_obj=b.id and b.x


	记录sql server 的批量删除主外键的sql语句
[数据库教程]

select b.name TableName,a.name TypeName,a.* from sysobjects a inner join sysobjects b on a.parent_obj=b.id and b.xtype=U


--删除约束  F外键、PK主键、D 约束、UQ 唯一约束
declare @tableName varchar(max),@typeName varchar(max)
declare fk_cursor cursor for select b.name TableName,a.name TypeName from sysobjects a inner join sysobjects b on a.parent_obj=b.id and b.xtype=U where a.xtype=PK

open fk_cursor

fetch next from fk_cursor into @tableName,@typeName
while @@FETCH_STATUS = 0
begin 
    exec (ALTER TABLE [dbo].[[email protected]+] DROP CONSTRAINT [[email protected]+])
    fetch next from fk_cursor into @tableName,@typeName
end
close fk_cursor
deallocate fk_cursor
select b.name TableName,a.name IndexName from sys.sysindexes a right join sys.sysobjects b on a.id=b.id where b.xtype=U and a.name is not null

--删除IX 索引
declare @tableName varchar(max),@indexName varchar(max)
declare index_cursor cursor for select b.name TableName,a.name IndexName from sys.sysindexes a right join sys.sysobjects b on a.id=b.id where b.xtype=U and a.name is not null

open index_cursor

fetch next from index_cursor into @tableName,@indexName
while @@FETCH_STATUS = 0
begin 
    exec (DROP INDEX [[email protected]+] ON [dbo].[[email protected]+])
    fetch next from index_cursor into @tableName,@indexName
end
close index_cursor
deallocate index_cursor



select b.name TableName,a.name ColumnName,a.* from syscolumns a 
inner join sysobjects b on b.id=a.id and b.xtype=U
inner join systypes c on a.xtype=c.xtype and c.name=uniqueidentifier

--修改uniqueidentifier的类型为nvarchar(max)
declare @tableName varchar(max),@columnName varchar(max)
declare change_type_cursor cursor for select b.name TableName,a.name ColumnName from syscolumns a 
inner join sysobjects b on b.id=a.id and b.xtype=U
inner join systypes c on a.xtype=c.xtype and c.name=uniqueidentifier

open change_type_cursor
fetch next from change_type_cursor into @tableName,@columnName
while @@FETCH_STATUS =0
begin
    exec (ALTER TABLE [dbo].[[email protected]+] ALTER COLUMN [[email protected]+] nvarchar(max) NOT NULL)
    fetch next from change_type_cursor into @tableName,@columnName
end
close change_type_cursor
deallocate change_type_cursor

 

记录SQL Server 的批量删除主外键的sql语句

原文地址:https://www.cnblogs.com/dazen/p/13307105.html

您可能感兴趣的文档:

--结束END--

本文标题: 记录sql server 的批量删除主外键的sql语句

本文链接: https://www.lsjlt.com/news/7217.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用SQL语句删除表中的记录
    要用SQL语句删除表中的记录,可以使用DELETE FROM语句。语法如下:```DELETE FROM 表名 WH...
    99+
    2023-09-16
    SQL
  • 利用SQL语句怎么删除重复的记录
    利用SQL语句怎么删除重复的记录?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如果要删除手机(mobilePhone),电话(...
    99+
    2024-04-02
  • sql中删除列的语句
    在 sql 中,使用 alter table 语句删除表列的语法是:alter table table_name drop column column_name。该语句将永久删除指定列中...
    99+
    2024-05-02
  • sql中删除行的语句
    sql 中通过 delete 语句删除行,语法为 delete from table_name where condition。参数中,table_name 指代目标...
    99+
    2024-05-07
  • SQL语句删除重复记录且只保留一条有效记录
    1.查找表中多余的重复记录,重复记录是根据单个字段(name)来判断 select * from libwhere name in (select name from lib group by name ha...
    99+
    2023-09-02
    数据库 mysql Powered by 金山文档
  • sql中删除表的语句是
    sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。 SQL中删除表的语句 SQL中用于删除表的语句是D...
    99+
    2024-04-29
  • sql中删除一个表的语句
    sql 中删除表的语句是 drop table table_name,其中 table_name 是要删除的表的名称。例如,drop table customers 将删除名为 "cus...
    99+
    2024-05-08
  • SQL删除多列语句的写法
    最近在写SQL过程中发现需要对一张表结构作调整(此处是SQL Server),其中需要删除多列,由于之前都是一条SQL语句删除一列,于是猜想是否可以一条语句同时删除多列,如果可以,怎么写法? 第一次猜想如下...
    99+
    2024-04-02
  • 删除索引的sql语句怎么写
    小编给大家分享一下删除索引的sql语句怎么写,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!删除索引drop index...
    99+
    2024-04-02
  • MySQL中通过SQL语句删除重复记录并且只保留一条记录
    目录一、单个字段的操作1、 查询全部重复的数据2、删除全部重复试题3、查询表中多余重复试题(根据depno来判断,除了rowid最小的一个)4、删除表中多余重复试题并且只留1条二、多个字段的操作总结最近在做题库系统,由于...
    99+
    2023-01-04
    MySQL删除重复记录 MySQLSQL删除重复
  • oracle怎么删除序列的sql语句
    要删除Oracle中的序列,可以使用以下SQL语句:```sqlDROP SEQUENCE sequence_name;```其中,...
    99+
    2023-08-25
    oracle sql
  • mysql删除主键的语句怎么写
    今天小编给大家分享一下mysql删除主键的语句怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • mysql如何批量删除空值的记录
    可以使用DELETE语句结合IS NULL条件来批量删除空值的记录。 假设我们要删除表中的空值记录,可以使用以下的DELET...
    99+
    2023-10-23
    mysql
  • 使用SQL语句怎么删除重复记录并只保留一条
    本篇文章为大家展示了使用SQL语句怎么删除重复记录并只保留一条,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、查找表中多余的重复记录,重复记录是根据单个字段(pe...
    99+
    2024-04-02
  • sql批量删除数据的方法是什么
    要批量删除数据,可以使用以下方法之一:1. 使用DELETE语句和WHERE子句:可以使用DELETE语句结合WHE...
    99+
    2023-09-16
    sql
  • 批量执行sql语句的方法是什么
    批量执行sql语句的方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 代码如下: DECLARE @MyCo...
    99+
    2024-04-02
  • 数据库sql语句设置外键的方法
    这篇文章主要介绍了数据库sql语句设置外键的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数据库sql语句设置外键的方法:1、添加外键约...
    99+
    2024-04-02
  • mysql删除表字段的sql语句怎么写
    要删除表字段,可以使用ALTER TABLE语句,指定要删除的字段名称。以下是一个示例SQL语句: ALTER TABLE tabl...
    99+
    2024-03-05
    mysql
  • oracle批量更新数据的sql语句怎么写
    要批量更新数据,可以使用Oracle的MERGE语句。下面是一个示例SQL语句: MERGE INTO your_table tgt...
    99+
    2024-04-12
    oracle
  • sql语句创建外键关联的完整实例
    以创建学生教师表为例: 学生 id 关联教师 tid 学生表: student 教师表: teacher sql语句 : USE school; CREATE TABLE ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作