簡體   English   中英

檢查SQL Server數據庫表中是否存在表或列

[英]Check if table or column exists in SQL Server database table

在SQL Server數據庫中創建列或表之前,我想檢查所需的表和/或列是否存在。

我到處搜索並找到2種方法。

  1. 存儲過程,我不想使用
  2. 通過使用SqlCommand.ExecuteScalar()方法並捕獲異常以確定表/列是否存在,這對我來說是一個變通方法,但不是一個完美的解決方案。

還有另一種方法檢查SQL Server中是否存在表/列嗎?

要在創建架構之前檢查其是否存在,請執行以下操作:

檢查是否存在一列; 您使用IF NOT EXISTS ,然后將實際查詢放入其中。

IF NOT EXISTS(SELECT * FROM sys.columns 
        WHERE [name] = N'columnName' AND [object_id] = OBJECT_ID(N'tableName'))
BEGIN
    ALTER TABLE ADD COLUMN MYCOLUMN
END

對於表, 查詢有點類似

IF (NOT EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'TheSchema' 
                 AND  TABLE_NAME = 'TheTable'))
BEGIN
    CREATE TABLE MYTABLE
END

查詢information_schema視圖

select * 
from information_schema.columns
where column_name = @mycolumn
    and table_name = @mytable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM