close

1 判斷資料庫是否存在
Sql
代碼
if exists (select * from sys.databases where name = ’
資料庫名’) 
  drop database [
資料庫名]  if exists (select * from sys.databases where name = ’資料庫名’)
  drop database [
資料庫名]
2
判斷表是否存在
Sql
代碼
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
判斷存儲過程是否存在
Sql
代碼
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
判斷臨時表是否存在
Sql
代碼
if object_id(’tempdb..#
臨時表名’) is not null   
  drop table #
臨時表名  if object_id(’tempdb..#臨時表名’) is not null 
  drop table #
臨時表名
5
判斷視圖是否存在
Sql
代碼
--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].[
視圖名]’  --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
判斷函數是否存在
Sql
代碼
-- 
判斷要創建的函數名是否存在   
  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
獲取用戶創建的物件資訊
Sql
代碼
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
判斷列是否存在
Sql
代碼
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
判斷列是否自增列
Sql
代碼
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
判斷表中是否存在索引
Sql
代碼
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
查看資料庫中物件
Sql
代碼
SELECT * FROM sys.sysobjects WHERE name=’
對象名’  SELECT * FROM sys.sysobjects WHERE name=’對象名

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 hsiung03 的頭像
    hsiung03

    hsiung.博格 ERP軟體

    hsiung03 發表在 痞客邦 留言(0) 人氣()