sql server drop talbe 自动删除关联的外键 ,权限体系(一)
- if object_id('Proc_DropTableWithFK') is not null
- begin
- drop proc dbo.Proc_DropTableWithFK
- end
- GO
- create proc Proc_DropTableWithFK @PK_tableName nvarchar(50)
- as
- begin
- declare test_cur cursor local for
- select
- o2.name as 'FK_name' ,
- O3.name as 'Table_Name' from sysforeignkeys FK
- inner join sys.objects o1 on FK.rkeyid=o1.object_id
- inner join sys.objects o2 on FK.constid= o2.object_id
- inner join sys.objects o3 on FK.fkeyid= o3.object_id
- where o1.name=@PK_tableName
- open test_cur
- declare @FK_name nvarchar(255),@Table_Name nvarchar(255)
- fetch next from test_cur into @FK_name,@Table_Name
- while @@FETCH_STATUS=0
- begin
- exec('ALTER TABLE '+@Table_Name+' DROP CONSTRAINT '+@FK_name)
- fetch next from test_cur into @FK_name,@Table_Name
- end
- close test_cur
- deallocate test_cur
- exec(' drop table '+@PK_tableName)
- end
- go
- if object_id('Sys_User') is not null
- exec dbo.Proc_DropTableWithFK 'Sys_User'
- GO
- create table Sys_User
- (
- Sys_UserID int identity(1,1) primary key,
- UserAccount nvarchar(255) not null,
- UserPwd nvarchar(255) not null,
- UserName nvarchar(255)
- )
- go
- if object_id('Sys_powerTeam') is not null
- exec dbo.Proc_DropTableWithFK 'Sys_powerTeam'
- go
- create table Sys_powerTeam
- (
- Sys_powerTeamID int identity(1,1),
- PowerTeamName nvarchar(255) not null
- )
- go
- if object_id('Sys_PowerTeamForUser') is not null
- exec dbo.Proc_DropTableWithFK 'Sys_PowerTeamForUser'
- go
- create table Sys_PowerTeamForUser
- (
- Sys_PowerTeamForUserID int identity(1,1) primary key,
- Sys_powerTeamID int,
- Sys_UserID int
- )
- go
- if object_id('Sys_Menu') is not null
- exec dbo.Proc_DropTableWithFK 'Sys_Menu'
- go
- create table Sys_Menu
- (
- Sys_MenuID int identity(1,1) primary key,
- Url nvarchar(255) ,
- ParentId int ,
- MenuName nvarchar(255) not null,
- OrderNum int
- )
- go
- if object_id('Sys_PowerTeamForMenu') is not null
- exec dbo.Proc_DropTableWithFK 'Sys_PowerTeamForMenu'
- go
- create table Sys_PowerTeamForMenu
- (
- Sys_PowerTeamForMenu int identity(1,1) primary key,
- Sys_powerTeamID int,
- Sys_MenuID int
- )
- go
这是一个权限体系表结构的建立,没有外键关系。
Proc_DropTableWithFK 这个存储过程 传入要删除的表明,将会查询出他所有的外键表以及外键名称,在把这些集合放在游标里面,循环删除所有外键,最后在删除表。
未完待续。。。
sql server drop talbe 自动删除关联的外键 ,权限体系(一)的更多相关文章
- sql server drop talbe 自动删除关联的外键 ,权限体系(二)
alter table dbo.Sys_PowerTeamForUser add constraint FK_Sys_User_Sys_PowerTeamForUser foreign key (Sy ...
- sql server小技巧-自动添加时间与主键自增长
在敲机房收费系统的时候,遇到添加时间的时候总是通过vb端调用当前时间再添到sql server中,期间还有时因为添加时间格式的不统一导致一些小问题,现在才知道原来是自己孤陋寡闻,sql server ...
- [转载]C#中使用ADO.NET连接SQL Server数据库,自动增长字段用作主键,处理事务时的基本方法
问题描述: 假设在数据库中存在以下两张数据表: User表,存放用户的基本信息,基本结构如下所示: 类型 说明 ID_User int 自动增长字段,用作该表的主键 UserName varcha ...
- 【SQL Server DBA】维护语句:删除并创建外键约束、获取建表语句
原文:[SQL Server DBA]维护语句:删除并创建外键约束.获取建表语句 1.删除外键约束,建立外键约束 先建立3个表: /* drop table tb drop table tb_b dr ...
- SQL Server数据库定时自动备份
SQL Server 数据库定时自动备份[转] 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求 ...
- SQL Server 索引的自动维护 <第十三篇>
在有大量事务的数据库中,表和索引随着时间的推移而碎片化.因此,为了增进性能,应该定期检查表和索引的碎片,并对具有大量碎片的进行整理. 1.确定当前数据库中所有需要分析碎片的表. 2.确定所有表和索引的 ...
- SQL Server数据库设置自动备份策略
一. 简单介绍 SQL Server自带的维护计划是一个非常有用的维护工具,能够完成大部分的数据库的维护任务. 数据库的备份也是日常工作中非常重要的一个环节.备份的方法非常的多. 今天给大家介绍最简单 ...
- MS SQL Server 定时任务实现自动备份
SQL Server Express 版本是没有SQL 代理服务的,从而导致不能使用SQL Server的定时自动备份功能.真心感觉这就是一个坑,虽然Express是学习的版本,但是精简的也太多了.另 ...
- 【SQL Server性能优化】删除大量数据的方法比较
原文:[SQL Server性能优化]删除大量数据的方法比较 如果你要删除表中的大量数据,这个大量一般是指删除大于10%的记录,那么如何删除,效率才会比较高呢? 而如何删除才会对系统的影响相对较小呢? ...
随机推荐
- Oracle Applications Multiple Organizations Access Control for Custom Code
档 ID 420787.1 White Paper Oracle Applications Multiple Organizations Access Control for Custom Code ...
- jconsole 连接 eclipse启动项
eclipse 启动java项目默认情况下不开启jmx远程观看,假设需要看看内存使用情况对项目执行的线程等信息,能eclipse添加启动参数: -Dcom.sun.management.jmxremo ...
- C# ^ 运算符和 || 运算符的区别
|| : 条件“或”,条件或运算符 (||) 执行的逻辑或其 bool 操作数. 如果第一个操作数计算结果为 true,第二个操作数对象不会计算. 如果第一个操作数计算结果为 false,第二个运算符 ...
- 【J2SE】java实现简单照片查看器
程序执行结果: project结构图: 程序代码: import java.awt.BorderLayout; import java.awt.FileDialog; import java.awt. ...
- STL源代码分析——STL算法merge合并算法
前言 因为在前文的<STL算法剖析>中.源代码剖析许多.不方便学习.也不方便以后复习,这里把这些算法进行归类.对他们单独的源代码剖析进行解说.本文介绍的STL算法中的merge合并算法. ...
- CloudFoundry.yml修订
--- name: CFRELEASE02 director_uuid: fdd46e30-f2c5-41dc-9662-0976fdac5716 releases: - name: cf versi ...
- HDU 1086:You can Solve a Geometry Problem too
pid=1086">You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Mem ...
- System.arraycopy--findbugs检查引发的更改
EI2: This code stores a reference to an externally mutable object into the internal representation o ...
- UVA11080- Place the Guards(二分图染色)
题目链接 题意:放最少的士兵去监视全部的道路, 但士兵不可相邻,符合的话,就输出最少的士兵数,否则输出-1 思路:事实上就是二分图染色,即黑白染色,然后选择黑白染色最少的那个颜色累加,但要注意可能有多 ...
- sk_buff整理笔记(两、操作函数)
承接上一:sk_buff 整理笔记(一.数据结构)这一篇要讲的是内核为sk_buff结构提供的一些操作函数. 第一.首先要讲的是sk_buff中的四大指针: 四大指针各自是:head.data.tai ...