国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了SQL Server判斷數(shù)據(jù)庫、表、列、視圖、存儲過程、函數(shù)是否存在。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、前言概述

在寫一些業(yè)務(wù)邏輯相對復(fù)雜點(diǎn)的存儲過程的時候,經(jīng)常會用到臨時表或者數(shù)據(jù)表作為臨時結(jié)果的保存。但每次在作表是否存在的判斷時,往往想不起完整的SQL寫法。因此,記錄一些常用的數(shù)據(jù)庫對象是否存在的判斷方法,可以達(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、判斷臨時表是否存在

--方法一
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'

四、視圖相關(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不存在'

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

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ù)相關(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不存在'

?文章來源地址http://www.zghlxwxcb.cn/news/detail-433730.html

到了這里,關(guān)于SQL Server判斷數(shù)據(jù)庫、表、列、視圖、存儲過程、函數(shù)是否存在的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SQL server設(shè)置用戶只能訪問特定數(shù)據(jù)庫、訪問特定表或視圖

    SQL server設(shè)置用戶只能訪問特定數(shù)據(jù)庫、訪問特定表或視圖

    在實際業(yè)務(wù)場景我們可能需要開放單獨(dú)用戶給第三方使用,并且不想讓第三方看到與業(yè)務(wù)不相關(guān)的表或視圖,我們需要在數(shù)據(jù)庫中設(shè)置一切權(quán)限來實現(xiàn)此功能: 1.創(chuàng)建用戶名 選擇默認(rèn)數(shù)據(jù)庫 服務(wù)器角色默認(rèn)為public 用戶映射選擇指定數(shù)據(jù)庫 打開需要開放權(quán)限的數(shù)據(jù)庫,這里我

    2023年04月09日
    瀏覽(230)
  • SQL Server數(shù)據(jù)庫判斷最近一次的備份執(zhí)行結(jié)果

    SQL Server數(shù)據(jù)庫判斷最近一次的備份執(zhí)行結(jié)果

    在SQL Server的官方文檔里面可以看到備份和還原的表,但是這些表里面只能找到備份成功的相關(guān)信息,無法找到備份失敗的記錄,比如 msdb.dbo.backupset 。對于一些監(jiān)控系統(tǒng)未監(jiān)控作業(yè)的情況下,想要監(jiān)控數(shù)據(jù)庫備份任務(wù)執(zhí)行失敗而觸發(fā)告警規(guī)則,有些麻煩。 但是SQL server內(nèi)部是

    2024年02月03日
    瀏覽(27)
  • 【SQL Server】數(shù)據(jù)庫開發(fā)指南(六)索引和視圖的使用技巧、方法與綜合應(yīng)用

    【SQL Server】數(shù)據(jù)庫開發(fā)指南(六)索引和視圖的使用技巧、方法與綜合應(yīng)用

    本系列博文還在更新中,收錄在專欄:#MS-SQL Server 專欄中。 本系列文章列表如下: 【SQL Server】 Linux 運(yùn)維下對 SQL Server 進(jìn)行安裝、升級、回滾、卸載操作 【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設(shè)計的核心概念和基本步驟 【SQL Server】數(shù)據(jù)庫開發(fā)指南(二)MSSQL數(shù)據(jù)庫開發(fā)對

    2024年02月06日
    瀏覽(126)
  • Excel 2019訪問SQL Server數(shù)據(jù)庫的實現(xiàn)過程

    Excel 2019訪問SQL Server數(shù)據(jù)庫的實現(xiàn)過程

    源之:https://vip.kingdee.com/article/288066926977041920?productLineId=11 在日常ERP系統(tǒng)實施過程中,往往會遇到客戶的一些個性化需求,比如有些客戶習(xí)慣用Excel電子表格來查看ERP系統(tǒng)中的數(shù)據(jù),業(yè)余拓展學(xué)習(xí)了一下,借助ODBC可以實現(xiàn)這個需求。 一、ODBC數(shù)據(jù)管理和SQL數(shù)據(jù)庫之間的連接的建

    2024年02月11日
    瀏覽(30)
  • 存儲過程、觸發(fā)器、游標(biāo)、視圖、自定義函數(shù) 字段類型、字段可空、統(tǒng)計字段、邏輯刪除 權(quán)限系統(tǒng)數(shù)據(jù)庫&無限極類別設(shè)計

    在數(shù)據(jù)庫設(shè)計中,存儲過程、觸發(fā)器、游標(biāo)、視圖、自定義函數(shù)、字段類型、字段可空、統(tǒng)計字段、邏輯刪除以及權(quán)限系統(tǒng)和無限級類別設(shè)計都是重要的概念。下面我將逐一解釋這些概念,并提供相關(guān)的設(shè)計建議。 存儲過程 (Stored Procedure) 定義 :存儲過程是一組為了完成特定

    2024年03月09日
    瀏覽(102)
  • 【MySQL】探索MySQL存儲過程的魔力,初學(xué)者的數(shù)據(jù)庫編程秘笈(內(nèi)含實戰(zhàn)SQL腳本)

    【MySQL】探索MySQL存儲過程的魔力,初學(xué)者的數(shù)據(jù)庫編程秘笈(內(nèi)含實戰(zhàn)SQL腳本)

    ?????作者名稱:DaenCode ??作者簡介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 ??所屬專欄:重溫MySQL MySQL存儲過程作為一種服務(wù)器端的 數(shù)據(jù)庫編程方式 ,提供了高效、可重用的方法來執(zhí)行相對復(fù)雜的數(shù)據(jù)庫操

    2024年02月15日
    瀏覽(95)
  • 數(shù)據(jù)庫實驗:SQL的數(shù)據(jù)視圖

    數(shù)據(jù)庫實驗:SQL的數(shù)據(jù)視圖

    視圖是由數(shù)據(jù)庫中的一個表或多個表導(dǎo)出的虛擬表,其作用是方便用戶對數(shù)據(jù)的操作 視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,數(shù)據(jù)庫中只存放了視圖的定義,而并沒有存放視圖中的數(shù)據(jù),這些數(shù)據(jù)存放在原來的

    2024年02月05日
    瀏覽(94)
  • 數(shù)據(jù)庫sql語句(視圖的創(chuàng)建)

    數(shù)據(jù)庫sql語句(視圖的創(chuàng)建)

    例題:? 建表:要注意各表之間的索引聯(lián)系,建表先后順序很重要,不然建不了,例如先建dept,在建其他表,先在dept插入數(shù)據(jù),再在其他表插入數(shù)據(jù) (1) (2)? (3)? (4) (5)? ? 插入數(shù)據(jù)如下圖 sql語句: 在 Student 表中加入屬性 SAGE(INT 型 ) ?將 Student 表中的屬性 SA

    2024年02月04日
    瀏覽(93)
  • GaussDB云數(shù)據(jù)庫SQL應(yīng)用系列-視圖管理

    GaussDB云數(shù)據(jù)庫SQL應(yīng)用系列-視圖管理

    一、前言 GaussDB是一款基于云計算技術(shù)的高性能關(guān)系型數(shù)據(jù)庫,支持多種數(shù)據(jù)模型和分布式架構(gòu)。在GaussDB中,視圖管理是非常重要的一項功能,它可以幫助用戶更方便地管理和查詢數(shù)據(jù)。 數(shù)據(jù)庫視圖管理是指對數(shù)據(jù)庫中的視圖進(jìn)行創(chuàng)建、修改、刪除、查詢等操作的過程。 參

    2024年02月06日
    瀏覽(632)
  • 數(shù)據(jù)庫原理及應(yīng)用實驗報告-實驗4-SQL的視圖

    數(shù)據(jù)庫原理及應(yīng)用實驗報告-實驗4-SQL的視圖

    實驗?zāi)康?熟悉SQL支持的有關(guān)視圖的操作,能夠熟練使用SQL語句來創(chuàng)建需要的視圖,對視圖進(jìn)行查詢和刪除視圖。 實驗內(nèi)容 定義常見的視圖形式,包括: 行列子集視圖 WITH CHECK OPTION的視圖 基于多個基表的視圖 基于視圖的視圖 帶表達(dá)式的視圖 分組視圖 通過實驗考察WITH CHEC

    2023年04月26日
    瀏覽(87)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包