Home >Database >Mysql Tutorial >SQL删除数据库中所有用户数据表外键

SQL删除数据库中所有用户数据表外键

WBOY
WBOYOriginal
2016-06-07 17:23:081059browse

--SQL删除数据库中所有用户数据表外键 --查询删除前的当前数据库所有约束select * from information_schema.key_column_usage de

Linux公社

首页 → 数据库技术

背景:

阅读新闻

SQL删除数据库中所有用户数据表外键

[日期:2012-11-24] 来源:Linux社区  作者:xqf222 [字体:]

--SQL删除数据库中所有用户数据表外键

--查询删除前的当前数据库所有约束
select * from information_schema.key_column_usage

declare @TableName nvarchar(250)
--声明读取数据库所有数据表名称游标mycursor1
declare mycursor1 cursor for select name from dbo.SysObjects WHERE OBJECTPROPERTY(ID, 'ISUSErTable') = 1
 --打开游标
open mycursor1
--从游标里取出数据赋值到我们刚才声明的数据表名变量中
fetch next from mycursor1 into @TableName
--如果游标执行成功 
while (@@fetch_status=0)
begin 
 --定义当前外键约束变量
declare @ConstraintName varchar (200)

--删除当前数据表的所有外键约束

--声明读取数据表所有外键约束名称游标mycursor2
declare mycursor2 cursor for select name from dbo.sysobjects where Xtype = 'F' and Parent_Obj = (select [ID]  from dbo.sysobjects where id = object_id(N'['+@TableName+']')  and OBJECTPROPERTY(id, N'IsUserTable') = 1)
--打开游标
open mycursor2
--从游标里取出数据赋值到外键约束名称变量中
fetch next from mycursor2 into @ConstraintName
--如果游标执行成功 
while (@@fetch_status=0)
begin
--删除当前找到的外键
exec ('ALTER TABLE '+@TableName+' DROP CONSTRAINT '+@ConstraintName)
--print 'ALTER TABLE '+@TableName+' DROP CONSTRAINT '+@ConstraintName
--用游标去取下一条记录
fetch next from mycursor2 into @ConstraintName
end

--关闭游标
close mycursor2
--撤销游标
deallocate mycursor2

 --用游标去取下一条记录
    fetch next from mycursor1 into @TableName
end

--关闭游标
close mycursor1
--撤销游标
deallocate mycursor1

--查询删除后的当前数据库所有约束
select * from information_schema.key_column_usage

linux

  • 0
  • SQL删除数据库中所有用户数据表主键

    SQL2005读取所有表字段的备注

    相关资讯       SQL语句 

    图片资讯      

  • SQL 内置函数(pivot) 纵转横

    SQL 内置函数(pivot
  • 本文评论   查看全部评论 (0)

    评论声明

    最新资讯

    本周热门

    Linux公社简介 - 广告服务 - 网站地图 - 帮助信息 - 联系我们
    本站(LinuxIDC)所刊载文章不代表同意其说法或描述,,仅为提供更多信息,也不构成任何建议。


    Copyright © 2006-2011 Linux公社 All rights reserved 浙ICP备06018118号

    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn