當前位置:首頁 » 編程語言 » sql檢查表是否存在
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql檢查表是否存在

發布時間: 2022-06-27 07:43:43

sql server 如何查詢某張表是否存在

select * from 表名。查詢分析器會告訴你這個表在不在的

❷ sql 判斷一個表是否存在

用戶表在當前資料庫的系統表中,可使用以下語句進行查找:
select Name,ID from sysobjects where xtype='U'

若是將xtype='U'換成xtype='V'就可以查出來所有視圖
xtype參數大概有以下種類:
C = CHECK 約束
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束
FN = 標量函數
IF = 內嵌表函數
K = PRIMARY KEY 或 UNIQUE 約束
L = 日誌
P = 存儲過程
R = 規則
RF = 復制篩選存儲過程
S = 系統表
TF = 表函數
TR = 觸發器
U = 用戶表
V = 視圖
X = 擴展存儲過程

❸ SQL語句問題 如何查詢出此表是否存在,如表名:tableName

SQL學習之查詢技巧 查詢表是否存在的兩種方法
方法一 判斷系統對象是否存在

DECLARE
@DbTableFileName VARCHAR(100)

SET @DbTableFileName = 'tx'

IF objectproperty(object_id(@DbTableFileName),'IsUserTable') IS NOT NULL
PRINT 'EXISTS '
ELSE
PRINT 'NOT EXISTS '

IF object_id(@DbTableFileName) IS NOT NULL
PRINT 'EXISTS '
ELSE
PRINT 'NOT EXISTS '

IF EXISTS (SELECT Object_id(@DbTableFileName))
PRINT 'EXISTS '
ELSE
PRINT 'NOT EXISTS '

方法二 通過查詢系統表

DECLARE
@DbTableFileName VARCHAR(100)

SET @DbTableFileName = 'tx'

IF EXISTS (SELECT 1
FROM sysobjects
WHERE name = @DbTableFileName
AND TYPE = 'u')
PRINT 'EXISTS '
ELSE
PRINT 'NOT EXISTS '

方法一更安全,

❹ 用SQL語句判斷數據表是否存在

Select Count(*) AS Qty FROM MSysObjects Where ((MSysObjects.Name) Like '表名'); --ACCESS適用判斷表存在

❺ sql檢查表是否存在

你是什麼資料庫, 檢查表是否存在呀?


SQL Server 2005 以上版本資料庫的話


1>selecttop10namefromsys.tables
2>go
name

------------------------------------------
BLOCK_TYPE_LINK
STOCK
STOCK_BLOCK_LINK
STOCK_DAY
SALE_REPORT
tb
TestSara
TestWhyypp
TestTDWS
TestWZY


(10行受影響)


你看看行不行?

就是通過 查詢sys.tables 來判斷, 某個表, 是否存在。

❻ sql語句 判斷表數據是否存在另一個表中

工具/材料:Management Studio。

1、首先在桌面上,點擊「Management Studio」圖標。

❼ sql 中如何查詢這個表是否存在,並刪除重建

下面的 SQL 是, 如果 STOCK 這個表不存在,那麼創建之。

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[STOCK]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[STOCK](
[STOCK_CODE] [varchar](10) NOT NULL,
[STOCK_NAME] [varchar](50) NOT NULL
)
END
GO

如果是判斷 表存在
那麼 前面的
IF NOT EXISTS
修改為
IF EXISTS

刪除,重建的 SQL ,就寫在那個 BEGIN END 裡面。

-----

DROP TABLE 不能用於除去由 FOREIGN KEY 約束引用的表。必須先除去引用的 FOREIGN KEY 約束或引用的表。

偷懶的辦法,就是 如果表存在, 那麼刪除掉
這樣的操作, 多執行幾次
最後統一 建表

這么處理的結果就是

第一次處理, 所有沒有 FOREIGN KEY 約束引用的表 與 引用的 FOREIGN KEY 約束或引用的表 被刪除了.

第二次處理, 某些原來不能刪除的表,由於 引用的 FOREIGN KEY 約束或引用的表 被刪除了, 現在可以刪除了.

麻煩在於:
如果資料庫體系太復雜
比如:
學校 是 系的 FOREIGN KEY
系 是 班級的 FOREIGN KEY
班級 是 學生的 FOREIGN KEY
學生是 考試成績的 FOREIGN KEY

這種情況下, 就麻煩了

❽ 怎麼判斷sql資料庫是否存在,存在刪除

判斷資料庫,如果存在則刪除:

IF (EXISTS(SELECT * FROM master.dbo.sysdatabases WHERE dbid=db_ID('dbname')))

DROP DATABASE dbname

如果提示:刪除資料庫時提示資料庫正在被使用,無法刪除(Cannot drop database databasename because it is currently in use),使用:

IF (EXISTS(SELECT * FROM master.dbo.sysdatabases WHERE dbid=db_ID('dbname')))

BEGIN

USE master

ALTER DATABASE dbname

SET single_user

WITH ROLLBACK IMMEDIATE

DROP DATABASE dbname

(8)sql檢查表是否存在擴展閱讀

判斷儲存過程,如果存在則刪除

IF (EXISTS(SELECT * FROM sysobjects WHERE name='procerename' AND type='P'))

DROP PROCEDURE procerename

判斷觸發器,如果存在則刪除

IF (EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'[dbo].[triggername]') AND OBJECTPROPERTY(id, N'IsTrigger') = 1))

DROP TRIGGER triggername

判斷用戶函數是否存在,如果存在則刪除

此處type有兩種: 'TF'- Table-Value Function 表值函數 'FN'- Scalar-Value Function 標量值函數

IF (EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'[dbo].[userfunction]') AND (type='FN' OR type='TF')))

DROP FUNCTION userfunction

❾ 怎樣可以檢測SQL資料庫中某個表是否存在

在sql資料庫中有一個sysobjects表,記錄當前所有的表名可以用Query(SQL語句)SELECT * FROM sysobjectsWHERE '表名' = Name或用Table打開,用Locate找一下