最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、前言概述

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

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

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

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

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

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、判斷臨時表是否存在

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

四、視圖相關的判斷

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不存在'

五、存儲過程相關的判斷

5.1、判斷存儲過程是否存在

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

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

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不存在'

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

相關文章

最新評論

龙口市| 竹溪县| 论坛| 牙克石市| 眉山市| 商水县| 渭源县| 团风县| 焉耆| 桐柏县| 饶河县| 莎车县| 新乡县| 息烽县| 阳高县| 工布江达县| 康保县| 和龙市| 深水埗区| 云龙县| 锦屏县| 敖汉旗| 平舆县| 乌兰县| 潜山县| 玉溪市| 红河县| 南乐县| 抚松县| 邮箱| 清流县| 博湖县| 巨鹿县| 逊克县| 新巴尔虎左旗| 宜春市| 印江| 宁德市| 赫章县| 公主岭市| 农安县|