SQL SERVER中查詢某個表或某個索引是否存在

來源:互聯網
上載者:User
查詢某個表是否存在:在實際應用中可能需要刪除某個表,在刪除之前最好先判斷一下此表是否存在,以防止返回錯誤資訊。在SQL SERVER中可通過以下語句實現:IF OBJECT_ID(N'表名稱', N'U') IS NOT NULL DROP TABLE 表名稱;注意,普通表和暫存資料表的使用差別:若希望刪除TEST庫中的dbo.TestTable表,直接將dbo.TestTable作為表名即可。若希望刪除暫存資料表dbo.#temp_table,需要以tempdb.dbo.#temp_table作為表名。

 

查詢表上的某個索引是否存在:通常情況下,為了提高資料的查詢效率,我們會為表的特定欄位建立索引,同一個表上的索引名稱是不同的。那麼如何判斷某個表是否已經存在特定名稱的索引了呢?可通過下面的語句判斷:SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(@tname, N'U') and NAME=@iname其中:@tname表示建索引的表名,@iname表示索引名。

 

擴充知識在每一個資料庫中都有sys.sysobjects用於包括在資料庫中建立的每個對象(例如約束、預設值、日誌、規則以及預存程序)。詳細的說明資訊參看MSDN上的協助文檔:sys.sysobjectsOBJECT_ID的作用是返回架構範圍內對象的資料庫物件標識號。如果找不到資料庫或對象的名稱,例如相應名稱不存在或拼字不正確,則會返回NULL。詳細的說明資訊參看MSDN上的協助文檔:object_idsys.indexes用於儲存每個表格對象(例如,表、視圖或資料表值函式)的索引或堆,詳細的說明資訊參看MSDN上的協助文檔:sys.indexes
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.