`
ldzyz007
  • 浏览: 700095 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

SqlServer判断数据库、表、存储过程、函数是否存在

阅读更多
1 判断数据库是否存在
  if exists (select * from sys.databases where name = ’数据库名’)

  drop database [数据库名]  if exists (select * from sys.databases where name = ’数据库名’)
  drop database [数据库名]

2 判断表是否存在
  if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) 

  drop table [表名]  if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
  drop table [表名]

3 判断存储过程是否存在
  if exists (select * from sysobjects where id = object_id(N’[存储过程名]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1) 

  drop procedure [存储过程名]  if exists (select * from sysobjects where id = object_id(N’[存储过程名]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
  drop procedure [存储过程名]

4 判断临时表是否存在
  if object_id(’tempdb..#临时表名’) is not null   
  drop table #临时表名  if object_id(’tempdb..#临时表名’) is not null 
  drop table #临时表名

5 判断视图是否存在
--SQL Server 2000
  IF EXISTS (SELECT * FROM sysviews WHERE object_id = ’[dbo].[视图名]’
--SQL Server 2005
  IF EXISTS (SELECT * FROM sys.views WHERE object_id = ’[dbo].[视图名]’

6 判断函数是否存在
  IF OBJECT_ID (N'函数名') IS NOT NULL
  DROP FUNCTION dnt_split
 
  if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[函数名]’) and xtype in (N’FN’, N’IF’, N’TF’))   
  drop function [dbo].[函数名]  

  if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[函数名]’) and xtype in (N’FN’, N’IF’, N’TF’)) 
  drop function [dbo].[函数名] 

7 获取用户创建的对象信息

  SELECT [name],[id],crdate FROM sysobjects where xtype=’U’ 
 
/* 
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 = 扩展存储过程 
*/  SELECT [name],[id],crdate FROM sysobjects where xtype=’U’
/*
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 = 扩展存储过程
*/

8 判断列是否存在
  if exists(select * from syscolumns where id=object_id(’表名’) and name=’列名’) 
  alter table 表名 drop column 列名  if exists(select * from syscolumns where id=object_id(’表名’) and name=’列名’)
  alter table 表名 drop column 列名

9 判断列是否自增列
  if columnproperty(object_id(’table’),’col’,’IsIdentity’)=1 
  print ’自增列’ 
else 
  print ’不是自增列’ 
 
SELECT * FROM sys.columns WHERE object_id=OBJECT_ID(’表名’) 
AND is_identity=1  if columnproperty(object_id(’table’),’col’,’IsIdentity’)=1
  print ’自增列’
else
  print ’不是自增列’
SELECT * FROM sys.columns WHERE object_id=OBJECT_ID(’表名’)
AND is_identity=1


10 判断表中是否存在索引
   if exists(select * from sysindexes where id=object_id(’表名’) and name=’索引名’)   
  print  ’存在’   
else   
  print  ’不存在  if exists(select * from sysindexes where id=object_id(’表名’) and name=’索引名’) 
  print  ’存在’ 
else 
  print  ’不存在

11 查看数据库中对象
   SELECT * FROM sys.sysobjects WHERE name=’对象名’  SELECT * FROM sys.sysobjects WHERE name=’对象名
分享到:
评论

相关推荐

    SQL Server数据库实验_存储过程与触发器设计.docx

    SQL SERVER为每个触发器都创建了两个临时表INSERTED表和DELETED表,这两个表的逻辑结构与被触发器作用的表一样,用户可以读取这两个表的内容,但不能对它们进行修改,触发器执行完后,这两个表也会自动删除。...

    SQLServer2005数据库学习笔记

    笔记是本人学习SQLServer一段时间后重新整理出来的,适合有一些入门基础的人学习。 ├─01 安装及使用 │ SQLServer2005安装及使用.txt │ ├─02 常用函数 │ function.sql ... Sqlserver数据库总结.sql

    dbForge SQL Decryptor.zip_SQLServer数据库存储过程解密工具

    数据库存储过程、函数解密工具:dbForge SQL Decryptor v3.1.24

    SQLserver不同数据库直接数据拷贝,支持大数据

    sqlserver 不同数据库之间数据拷贝,可支持一键复制拷贝整个数据库表,更高版本支持索引主键,存储过程,函数,视图,触发器的一键导出。可建一个新库,把置疑数据库的数据直接导入到新数据库

    比较SQLSERVER数据库差异

    比较SQLSERVER数据库表结构差异差异,触发器、存储过程、函数、视图

    sqlserver 数据库设计模板

    3.6.1 存储过程 功能说明、入口参数、出口参数、处理算法(可用流程图、代码表达)、程序注释。 3.6.2 函数 功能说明、入口参数、出口参数、处理算法(可用流程图、代码表达)、程序注释。 3.6.3 触发器 所属表、...

    WinCC SQL SERVER 数据库实现数据库同步

    一、项目需求 1. 数据库同步 实现两个Sqlserver之间的数据库同步 ...内网A、B两个Sqlserver数据库服务器 A服务器某库表结构、数据、存储过程、自定义函数发生变化时自动同步到B服务器的对应数据库中

    剖析SQL Server数据库扩展存储过程

    SQL Server 的扩展存储过程,其实就是一个普通的 Windows DLL,只不过按照某种规则实现了某些函数而已。本文介绍一下作者的扩展存储过程,该动态库导出了三个函数: Init,work,Final,Init读文件,存储信息于内存,work...

    SQL Server数据库自定义函数与存储过程研究.pdf

    SQL Server数据库自定义函数与存储过程研究.pdf

    SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则

    SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则

    SQL Server 2000数据库开发从零开始

    内容涉及应用程序需求分析和模型设计,数据库数据处理、函数、存储过程、默认、规则等多种数据库对象操作,SQL Server 2000多种管理工具的使用方法,数据库完整性、一致性、可用性和安全性方面的知识,前端应用程序...

    SQLSERVER+数据库设计与实现详解

    本文主要讲述的是关系型数据库及SQL语句,SQLSERVER数据库设计与实现; 感兴趣的朋友可以过来看看 目录: 第一章 SQL SERVER2000数据库管理系统 第二章 创建和维护数据库 第三章 设计表 第四章 表的管理 第五章 ...

    SqlServer数据库课程设计-订单管理

    这是使用Microsoft Sql Server数据库实现的订单管理课程作业,包含数据库脚本、数据库文件、要求及文档。 本资源中实现的数据库表有订单信息表、客户信息表、送货记录表,文档列出了所有插入数据的脚本。创建了计算...

    最方便的sql server存储过程、函数解密工具

    笔者找到的功能最强大、操作最简单、使用最可靠的数据库解密工具,用于解密的SQL Server2000、2005等版本的存储过程、函数、触发器和视图。 执行连接到数据库后,左边直接列出数据库清单以及每个数据库内的存储过程...

    dSQLSRVD,sqlserver数据库存储过程、函数解密

    存储过程、函数解密工具,简单、全面,好用

    SQL Server数据库入门学习总结

    数据库是如何显示数据的 select SQLServer数据库学习总结 1.SQL基础 SQL Server2000安装、配置,服务器启动、停止,企业管理器、查询分析器 第一代数据库–网状数据库和层次数据库;第二代数据库–关系数

    SQL Server 2000存储过程与XML编程(第2版).part1

    第2章 SQL Server环境 第3章 存储过程的设计概念 第4章 T-SQL的基本编程结构 第5章 函数 第6章 复合T-SQL结构:批处理、脚本和事务 第7章 调试和错误处理 第8章 特殊类型的过程 第9章 高级存储过程编程 第10章 与SQL...

    实验4存储过程和函数实验

    适合sqlserver数据库初学者,实验四存储过程和函数实验

    sqlserver 各种判断是否存在(表名、函数、存储过程等)

    sql server中如何判断表或者数据库的存在,但在实际使用中,需判断Status状态位:其中某些状态位可由用户使用 sp_dboption(read only、dbo use only、single user 等)进行设置: 1 = autoclose;使用 sp_dboption ...

    SQL Server数据库管理与开发PPT

    本书例题、实训、习题中所有案例的库、表、视图、字段、函数、存储过程、触发器及其语法格式等对象均采用汉字命名,使同学们能更好地理解举例的意义。 全书共12章。第1、2章,讲解数据库基本概念、基本理论以及...

Global site tag (gtag.js) - Google Analytics