sql server判断数据库、表、列、视图是否存在

1 判断数据库是否存在

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 [表名]

3 判断存储过程是否存在

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 #临时表名

5 判断视图是否存在

--判断是否存在'MyView52'这个试图
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = N'MyView52')
PRINT '存在'
else
PRINT '不存在'

6 判断函数是否存在

-- 判断要创建的函数名是否存在
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'

8 判断列是否存在

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

10 判断表中是否存在索引

if exists(select * from sysindexes where id=object_id('表名') and name='索引名')
print '存在'
else
print '不存在'

删除索引 drop index 表名.索引名

或: drop index 索引名 on 表名(貌似2000不行)

11 查看数据库中对象

SELECT * FROM sys.sysobjects WHERE name='对象名' SELECT * FROM sys.sysobjects WHERE name='对象名'

(0)

相关推荐

  • Sql Server中判断表、列不存在则创建的方法

    一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法  IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' 第二种方法,短小

  • sql server中判断表或临时表是否存在的方法

    1.判断数据表是否存在 方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else print '不存在' 例如: use fireweb; go if object_id(N'TEMP_TBL',N'U') is not null print '存在' else print '不存在' 方法二: USE [实例名] GO IF EXISTS (SELECT * FROM dbo.SysObjec

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

    sql server中如何判断表或者数据库的存在,但在实际使用中,需判断Status状态位:其中某些状态位可由用户使用 sp_dboption(read only.dbo use only.single user 等)进行设置: 1 = autoclose:使用 sp_dboption 设置. 数据库完全关闭,其资源在最后一个用户注销后释放.4 = select into/bulkcopy:使用 sp_dboption 设置.允许使用 Select INTO 语句和快速大容量复制.8 = tru

  • sql server判断数据库、表、列、视图是否存在

    1 判断数据库是否存在 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 [表名] 3 判断存储过程是否存在 if exist

  • 解决SQL SERVER 2008数据库表中修改字段后不能保存

    找到工具>选项>Designers>表设计器和数据库设计器 然后将"阻止保存要求重新创建表的更改" 的这一项的钩钩去掉就OK了

  • SQL Server创建数据库和数据表的相关约束实现方法

    本文分析了SQL Server创建数据库和数据表的相关约束实现方法.分享给大家供大家参考,具体如下: 创建约束语法如下: CREATE DATABASE [test] ON (NAME=N'test',FILENAME=N'd:\SQL2kt_Data\test.mdf',SIZE=3mb,MAXSIZE=UNLIMITED,FILEGROWTH=1MB) LOG ON (NAME=N'test_log',FILENAME=N'd:\SQL2kt_Data\test_log.ldf',SIZE=

  • 判断数据库表是否存在以及修改表名的方法

    一.判断数据库表是否存在: 首先要拿到数据库连接conn,调用DatabaseMetaData dbmd = conn.getDataMeta();之后调用如下方法: 复制代码 代码如下: /** * 根据表名,判断数据库表是否存在 * @param tableName * @return true:存在该表,false:不存在该表 */ public boolean hasTable(String tableName) { Init(); boolean result = false; //判

  • 显示 Sql Server 中所有表中的信息

    显示某个Sql Server某个数据库中所有表或视图的信息 sql server 2000 与 2005 不同 差别在于 红色字部分以下语句为获取所有表信息,替换绿色黑体字"U"为"V"为获取所有视图信息. Sql Server 2000 版本 SELECT Sysobjects.name AS TABLE_NAME, syscolumns.Id, syscolumns.name AS COLUMN_NAME,systypes.name AS DATA_TYPE,

  • SQL Server 2008数据库分布式查询知识

    在接触公司一个系统时,公司使用的是SQL Server 2008数据库,里面涉及到了多个数据库之间的查询,而且数据库是分布式的,数据库分布在多台服务器之间,并且各个数据库各尽其责,负责存放不同模块功能的数据.这里面就要涉及到了数据库的分布式查询. 补充一下分布式查询的知识: 分布式查询从多异类数据源中访问数据.这些数据源可以存储在同一台计算机或不同的计算机上.Microsoft SQL Server 通过使用 OLE DB 来支持分布式查询. SQL Server 用户可以使用分布式查询访问以下

  • 利用SQL Server触发器实现表的历史修改痕迹记录

    在很多应用程序开发中,需要记录某些数据表的历史记录或修改痕迹,以便日后出现数据错误时进行数据排查.这种业务需求,我们可以通过数据库的触发器来轻松实现历史记录功能. 本文以SQL Server 2005数据库中的触发器为例(因为手中的项目用的就是这个数据库) 先简单描述一下SQL Server触发器. SQL Server触发器的inserted和deleted SQL Server为每个触发器都创建了两个专用虚拟表:inserted表和deleted表.这两个表由系统来维护,他们存在于内存中,而

  • sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解

    废话不多说了,直接给大家贴代码了,具体代码如下所示: --服务器角色: --固定服务器角色具有一组固定的权限,并且适用于整个服务器范围. 它们专门用于管理 SQL Server,且不能更改分配给它们的权限. --可以在数据库中不存在用户帐户的情况下向固定服务器角色分配登录. --按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述: --1.Bulkadmin:这个服务器角色的成员可以运行BULKINSERT语句.这条语句允许从文本文件中将数据导入到SQL

  • SQL Server 2008数据库误删数据如何进行数据恢复

    有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份.让我帮他解决一下,不然他要赔偿客户很多钱. SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery mode)是"完整(Full)". 针对这两个前提条件,会有三种情况: 情况一.如果这两个前提条件都存在

  • SQL server 2005的表分区

    下面来说下,在SQL SERVER 2005的表分区里,如何对已经存在的有数据的表进行分区,其实道理和之前在http://www.cnblogs.com/jackyrong/archive/2006/11/13/559354.html说到一样,只不过交换下顺序而已,下面依然用例子说明:   依然在c盘的data2目录下建立4个文件夹,用来做4个文件组,然后建立数据库 use masterIF  EXISTS (SELECT name FROM sys.databases WHERE name =

随机推荐