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 这个存储过程 传入要删除的表明,将会查询出他所有的外键表以及外键名称,在把这些集合放在游标里面,循环删除所有外键,最后在删除表。

未完待续。。。

最新文章

  1. Google Java编程库Guava介绍
  2. Java中的泛型 (上) - 基本概念和原理
  3. ASP.NET知识总结(7.状体保持)
  4. ios 控件显示不出来的几个可能
  5. Js 常用函数
  6. AC日记——积木大赛 洛谷 P1969
  7. 如何开启PostGreSQL的远程访问端口?
  8. Android开发-API指南-<uses-feature>
  9. 【整理】Visual Studio快捷键
  10. FastCgi与PHP-fpm关系[转] 读完本文瞬间明朗了很多
  11. C#学习第六天
  12. hdu 1078 FatMouse and Cheese_记忆搜索
  13. php 多维数组 arrayList array()
  14. C++_enum
  15. Controller 和 Action (2)
  16. git 与 github基本使用
  17. MySQL 的分页查询 SQL 语句
  18. 防火墙iptables的简单使用
  19. linux下怎么进入本机mysql
  20. Mac下打开多个eclipse

热门文章

  1. Android 推断SD卡是否存在及容量查询
  2. 如何有效抓取SQL Server的BLOCKING信息
  3. Maven: NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher
  4. NFS文件系统配置 和 GLIBC更新
  5. Ubuntu中全然卸载Nginx
  6. 新安装Win10
  7. 比float更好的页面布局inline-block
  8. OCP读书笔记(22) - 题库(ExamB)
  9. obj-c编程04:类的继承
  10. 一个用于每一天JavaScript示例-SVG中间javaScript画廊