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%的记录,那么如何删除,效率才会比较高呢? 而如何删除才会对系统的影响相对较小呢? ...
随机推荐
- Codeforces 437E The Child and Polygon(间隔DP)
题目链接:Codeforces 437E The Child and Polygon 题目大意:给出一个多边形,问说有多少种切割方法.将多边形切割为多个三角形. 解题思路:首先要理解向量叉积的性质,一 ...
- What is Observer and Observable and when we used these?
转会:http://stackoverflow.com/questions/13744450/interview-when-do-we-use-observer-and-observable
- compass安装使用960 Grid System
960 Grid System 是一个CSS的页面布局框架 demo: http://960.gs/demo.html 前提:安装Ruby .NodeJS 步骤1:在命令行下安装css插件: gem ...
- Unity3D Resources TextAsset 正文
一些小的数据,您可以使用txt文字作为一种媒介,被收购.变速箱.更改.记忆力. 实例:User1.2.3.txt,放入 Resources/Data 文件下: 一,Unity3d Resources. ...
- 这个夏天不AC(杭州电2037)
这个夏天不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- backup mysql for xtrabackup with xbstream and lz4
极品暂时mysql加入一个实例,采用xtrabackup最简单的速度. 在现有数据节点上: /home/work/app/xtrabackup-2.2.3/innobackupex --ibbacku ...
- linux网络编程投票
投票系统 1.说明: 写了一个投票系统.过程是先配置好server,在写一个网上投票功能.要实现网上投票功能. 事实上功能实现还是非常easy的,麻烦一点的在于过程比較繁杂,要做的东西还是挺多的. 2 ...
- CSS hack方式
史上最全的CSS hack方式一览 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我们会极不情愿的使用这个不太友好的方式来达到大家要求的页面表现 ...
- wikioi 1034 家 实时动态的网络流量(费用流)
因为随着时间的推移.网络侧变得,因此,常见的网络流量也解决不了这个问题,.如果T毕竟运输时间. 为此.我们可以基于时间分割点,所有的点将被分割为T点. 对于每一个点,下一次甚至一个容量为本人INF边缘 ...
- SQLServer-----使用jTDS连接SQLServer数据库
一.jTDS一个简短的引论 jTDS100%纯Java实现的JDBC3.0驱动,它用于连接 Microsoft SQL Server(6.5.7.2000,2005,2008 和 2012)和Syba ...