t-sql判断数据库对象是否存在
1 系统表sys.sysobjects
在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行,详细介绍参考MSDN
2 OBJECTPROPERTY
返回当前数据库中架构范围内的对象的有关信息,MSDN介绍
3 判断数据库、表、视图、存储过程、索引、列是否存在语句
SELECT * FROM sys.sysobjects
GO
/*
xtype 的表示参数类型,通常包括如下这些
C = CHECK 约束
D = 默认值或DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程
*/--数据库
IF exists( SELECT 1 from sys. sysdatabases where name = dbname)
begin
drop database dbname
end --表
IF exists( SELECT 1 from sys. sysobjects where id = object_id (N'tbname') AND OBJECTPROPERTY (id, N'IsUserTable') = 1)
BEGIN
drop TABLE tbname
END --存储过程
IF exists( SELECT 1 from sys. sysobjects where id = object_id(N'System_GetTableCreateSql' )
AND OBJECTPROPERTY (id, N'IsProcedure') = 1)
BEGIN
drop PROC System_GetTableCreateSql
END --函数
IF exists (SELECT 1 from sys.sysobjects where id = object_id('procname' ))
BEGIN
drop Function procname
END --视图
IF exists( SELECT 1 from sys. views where object_id = object_id(N'viewname' ))
BEGIN
drop VIEW viewname
END --列
IF exists( SELECT 1 from syscolumns where id =object_id( 'tbname') and name='columnName' )
BEGIN
alter table tbname drop column columnName
END --索引
IF exists( SELECT 1 from sys. sysindexes where id= object_id('tbname' ) and name='indexName' )
BEGIN
drop INDEX indexName ON tbname
END
t-sql判断数据库对象是否存在的更多相关文章
- 查询Sql Server数据库对象结构
查询Sql Server数据库对象结构 查询数据库 查询架构 查询表 查询列 查询存储过程 查询视图 1.查询某一服务器下所有数据库 select t.[name] as 数据库 from sys.d ...
- SQL Server IF Exists 判断数据库对象是否存在的用法
1 判断数据库是否存在Sql代码 if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名] ...
- SQL Server 数据库对象命名参考
一. 引言 编码规范是一个优秀程序员的必备素质,然而,有很多人非常注重程序中变量.方法.类的命名,却忽视了同样重要的数据库对象命名.这篇文章结合许多技术文章和资料,以及我自己的开发经验,对数据库对象的 ...
- 基于Python的SQL Server数据库对象同步轻量级实现
缘由 日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器.类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话就可以,但会存在相当一部分反复的手工操作.建源的 ...
- SQL 判断数据库是否有相关表 字段
--判断数据库是否有相关表 if exists (select 1 from sysobjects where id = object_id(' 表名 ') and type = ' U ' ); - ...
- Sql Server数据库对象访问权限控制
以下内容主要针对database层面的数据访问权限(比如select, insert, update, delete, execute…) 1.直接给user权限GRANT EXECUTE TO [u ...
- sql 判断 数据库 表 字段 是否存在
select * From master.dbo.sysdatabases where name='数据库名'select * from sysobjects where id = object_id ...
- Sql中判断“数据库"、"表"、"临时表"、"存储过程"和列”是否存在
--判断数据库是否存在 IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME = ''库名'') PRINT ''exists ...
- SQL Server数据库存在判断语句及系统表简介 转
Transact-SQL Exists Sentences--判断数据库是否存在IF EXISTS(SELECT * FROM master.sysdatabases WHERE name=N'库名' ...
随机推荐
- flask和pymongo的完美搭配
1.如何进行mongo数据库的链接 import pymongo client = pymongo.MongoClient(host='192.168.*.*', port=27017,) db_au ...
- ZooKeeper安装与执行
首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有"bin,conf,lib"等文件夹. "bin文件夹"中存放有执行脚 ...
- 改变UITextField的Placeholder颜色
通过 attributedPlaceholder 属性来改变 if([textField respondsToSelector:@selector(setAttributedPlaceholder:) ...
- 如何在aspx页面中使用ascx控件(用户自定义的一个控件)?
aspx是页面文件ascx是用户控件,用户控件必须嵌入到aspx中才能使用. ascx是用户控件,相当于模板 其实ascx你可以理解为Html里的一部分代码,只是嵌到aspx里而已,因为aspx内容多 ...
- Android下的ActionBar
1 http://blog.csdn.net/lilu_leo/article/details/7674904 2 http://blog.csdn.net/eclipsexys/article/de ...
- baksmali反编译出现:UNEXPECTED TOP-LEVEL ERROR:....Too many open files
解包大型apk文件,可能会出现例如以下错误, UNEXPECTED TOP-LEVEL ERROR: java.util.concurrent.ExecutionException: java.io. ...
- Java中常用的加密算法MD5,SHA,RSA
1. MD5加密,常用于加密用户名密码,当用户验证时. protected byte[] encrypt(byte[] obj){ try { MessageDigest md5 = Messag ...
- ubuntu安装中文man手册
1.安装manpages-zh包 sudo apt-get install manpages-zh 2.修改manpath文件 执行如下命令: vi /etc/manpath.config %s+/u ...
- 为什么Goroutine能有上百万个,Java线程却只能有上千个?
作者|Russell Cohen 译者|张卫滨 本文通过 Java 和 Golang 在底层原理上的差异,分析了 Java 为什么只能创建数千个线程,而 Golang 可以有数百万的 Go ...
- 推荐扔物线的HenCoder Android 开发进阶系列 后期接着更新
官网地址:http://hencoder.com/ 我来做一次辛勤的搬运工 HenCoder:给高级 Android 工程师的进阶手册 HenCoder Android 开发进阶: 自定义 View ...