欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL Server判斷數(shù)據(jù)庫、表、列、視圖、存儲(chǔ)過程、函數(shù)是否存在總結(jié)

 更新時(shí)間:2023年05月05日 10:50:50   作者:縹緲的塵埃  
這篇文章主要介紹了SQL Server判斷數(shù)據(jù)庫、表、列、視圖、存儲(chǔ)過程、函數(shù)是否存在,本文是一篇總結(jié)篇,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、前言概述

在寫一些業(yè)務(wù)邏輯相對(duì)復(fù)雜點(diǎn)的存儲(chǔ)過程的時(shí)候,經(jīng)常會(huì)用到臨時(shí)表或者數(shù)據(jù)表作為臨時(shí)結(jié)果的保存。但每次在作表是否存在的判斷時(shí),往往想不起完整的SQL寫法。因此,記錄一些常用的數(shù)據(jù)庫對(duì)象是否存在的判斷方法,可以達(dá)到快速查找的目的。正是:好記性不如爛筆頭。

二、數(shù)據(jù)庫相關(guān)的判斷

2.1、判斷數(shù)據(jù)庫是否存在

IF EXISTS (SELECT * FROM sys.databases WHERE NAME='TEST')
    PRINT '數(shù)據(jù)庫TEST存在'
ELSE
    PRINT '數(shù)據(jù)庫TEST不存在'

三、數(shù)據(jù)表相關(guān)的判斷

3.1、判斷數(shù)據(jù)表是否存在

--方法一
IF OBJECT_ID(N'[dbo].[PRODUCT]',N'U') IS NOT NULL
    PRINT '數(shù)據(jù)表PRODUCT存在'
ELSE
    PRINT '數(shù)據(jù)表PRODUCT不存在'
--方法二
IF EXISTS (SELECT * FROM sysobjects WHERE ID=OBJECT_ID(N'[dbo].[PRODUCT]') AND XTYPE='U')
    PRINT '數(shù)據(jù)表PRODUCT存在'
ELSE
    PRINT '數(shù)據(jù)表PRODUCT不存在'
--方法三
IF EXISTS (SELECT * FROM sysobjects WHERE ID=OBJECT_ID(N'[dbo].[PRODUCT]') AND OBJECTPROPERTY(ID,N'IsUserTable')=1)
    PRINT '數(shù)據(jù)表PRODUCT存在'
ELSE
    PRINT '數(shù)據(jù)表PRODUCT不存在'

3.2、判斷臨時(shí)表是否存在

--方法一
IF OBJECT_ID(N'tempdb..#PRODUCT',N'U') IS NOT NULL
    PRINT '臨時(shí)表#PRODUCT存在'
ELSE
    PRINT '臨時(shí)表#PRODUCT不存在'
--方法二
IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects WHERE ID=OBJECT_ID(N'tempdb..#PRODUCT') AND XTYPE='U')
    PRINT '臨時(shí)表#PRODUCT存在'
ELSE
    PRINT '臨時(shí)表#PRODUCT不存在'

3.3、判斷表是否存在某列

--方法一
IF COL_LENGTH(N'[dbo].[PRODUCT]','PRD_ID') IS NOT NULL
    PRINT '表PRODUCT存在列PRD_ID'
ELSE
    PRINT '表PRODUCT不存在列PRD_ID'
--方法二
IF EXISTS (SELECT * FROM syscolumns WHERE ID=OBJECT_ID(N'[dbo].[PRODUCT]') AND NAME='PRD_ID')
    PRINT '表PRODUCT存在列PRD_ID'
ELSE
    PRINT '表PRODUCT不存在列PRD_ID'
--方法三
IF EXISTS (SELECT * FROM sysobjects A INNER JOIN syscolumns B ON A.ID=B.ID WHERE A.XTYPE='U' AND A.NAME='PRODUCT' AND B.NAME='PRD_ID')
    PRINT '表PRODUCT存在列PRD_ID'
ELSE
    PRINT '表PRODUCT不存在列PRD_ID'

3.4、判斷列是否自增列

IF COLUMNPROPERTY(OBJECT_ID(N'[dbo].[PRODUCT]'),'PRD_ID','ISIDENTITY')=1
    PRINT '表PRODUCT列PRD_ID是自增列'
ELSE
    PRINT '表PRODUCT列PRD_ID不是自增列'

3.5、判斷表中是否存在索引

IF EXISTS(SELECT * FROM SYSINDEXES WHERE ID=OBJECT_ID(N'[dbo].[PRODUCT]') AND NAME='PK_PRODUCTS')
    PRINT '表PRODUCT存在索引PK_PRODUCTS'
ELSE
    PRINT '表PRODUCT不存在索引PK_PRODUCTS'

四、視圖相關(guān)的判斷

4.1、判斷視圖是否存在

--方法一
IF OBJECT_ID(N'[dbo].[BRC_1001]','V') IS NOT NULL
    PRINT '視圖BRC_1001存在'
ELSE
    PRINT '視圖BRC_1001不存在'
--方法二
IF EXISTS (SELECT * FROM sysobjects where id=OBJECT_ID(N'[dbo].[BRC_1001]') and OBJECTPROPERTY(ID,N'IsView')=1)
    PRINT '視圖BRC_1001存在'
ELSE
    PRINT '視圖BRC_1001不存在'
--方法三
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME=N'BRC_1001')
    PRINT '視圖BRC_1001存在'
ELSE
    PRINT '視圖BRC_1001不存在'

五、存儲(chǔ)過程相關(guān)的判斷

5.1、判斷存儲(chǔ)過程是否存在

--方法一
IF OBJECT_ID(N'[dbo].[BRC_BomCost]','P') IS NOT NULL
    PRINT '存儲(chǔ)過程BRC_BomCost存在'
ELSE
    PRINT '存儲(chǔ)過程BRC_BomCost不存在'
--方法二
IF EXISTS (SELECT * FROM sysobjects WHERE ID=OBJECT_ID(N'[dbo].[BRC_BomCost]') AND OBJECTPROPERTY(ID,N'IsProcedure')=1)
    PRINT '存儲(chǔ)過程BRC_BomCost存在'
ELSE
    PRINT '存儲(chǔ)過程BRC_BomCost不存在'

六、函數(shù)相關(guān)的判斷

6.1、判斷函數(shù)是否存在

IF EXISTS (SELECT * FROM sysobjects WHERE ID=OBJECT_ID(N'[dbo].[BRC_MLTotal]') AND XTYPE IN (N'FN',N'IF',N'TF'))
    PRINT '函數(shù)BRC_MLTotal存在'
ELSE
    PRINT '函數(shù)BRC_MLTotal不存在'

到此這篇關(guān)于SQL Server判斷數(shù)據(jù)庫、表、列、視圖、存儲(chǔ)過程、函數(shù)是否存在的文章就介紹到這了,更多相關(guān)sqlserver判斷視圖函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論