1、判斷資料庫是否存在
使用資源:「master..sysdatabases」存放著所有資料庫的資訊
判斷案例:
if exists(select * from master..sysdatabases where name=n'庫名')
print 'exists'
else
print 'not exists'
2、判斷資料表是否存在
使用資源:「dbo.sysobjects 」存放著所有資料表的資訊
判斷案例:
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[表名]') and objectproperty(id, n'isusertable') = 1)
drop table [dbo].[表名] -- 刪除表
3、判斷臨時表是否存在
使用資源:「tempdb..sysobjects」/"tempdb.dbo.sysobjects"存放著所有臨時表的資訊
判斷案例:
if exists (select * from tempdb..sysobjects where id = object_id(n'tempdb..#臨時表名') )
drop table #臨時表名 -- 刪除臨時表
4、object_id()方法實現方便快速地判斷
判斷案例:
--if object_id('tb_table') is not null --臨時表判斷
if object_id('tb_table') is not null --正式表判斷
print 'exist'
else
print'not exist'
擴充套件知識:
object_id()可接受兩個引數,第乙個如上所示,代表資源的名稱,上面的就是表的名字,但往往我們要說明我們所要建立的是什麼型別的資源,
這樣sql可以明確地在一種型別的資源中查詢是否有重複的名字,如下:
if
object_id('tb_table','u') is not null
print 'exist'
else
print'not exist'
第二個引數 "u" 就表示tb_table是使用者建立的表,即:user_table地首字母簡寫
查詢sys.objects中可得到各種資源的型別名稱(type列),這裡之舉幾個主要的例子
u ----------- 使用者建立的表,區別於系統表(user_table)
s ----------- 系統表(system_table)
v ----------- 檢視(view)
p ----------- 儲存過程(sql_stored_procedure)
可使用select distinct type ,type_desc from sys.objects 獲得全部資訊
5、判斷表中列是否存在
判斷案例:
if col_length( '表名','列名') is null
print 'not exists'
else
print 'exists'
6、判斷檢視是否存在
判斷案例:
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[檢視名]') and objectproperty(id, n'isview') = 1)
drop view [dbo].[檢視名] -- 刪除檢視
7、判斷儲存過程是否存在
判斷案例:
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[儲存過程名]') and objectproperty(id, n'isprocedure') = 1)
drop procedure [dbo].[儲存過程名] -- 刪除儲存過程
5、判斷方法是否存在
判斷案例:
--if exists (select * from sysobjects where xtype='fn' and name='函式名')
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[函式名]') and xtype in (n'fn', n'if', n'tf'))
drop function [dbo].[函式名] -- 刪除函式
sqlserver判斷表是否存在
1 判斷資料表是否存在 方法一 use yourdb goif object id n tablename n u is not null print 存在 else print 不存在 例如 use fireweb goif object id n temp tbl n u is not null...
SQL Server 判斷表是否存在
1 判斷資料表是否存在 方法一 use yourdb goif object id n tablename n u is not null print 存在 else print 不存在 例如 use fireweb goif object id n temp tbl n u is not null...
Sqlserver中判斷表是否存在
在sqlserver 應該說在目前所有資料庫產品 中建立乙個資源如表,檢視,儲存過程中都要判斷與建立的資源是否已經存在 在sqlserver中一般可通過查詢sys.objects系統表來得知結果,不過可以有更方便的方法 如下 if object id tb table is not null pri...