關於與this question:我嘗試使用下面的查詢我的SQL Server查詢,如果表不存在識別
IF NOT EXISTS(
SELECT T.name FROM SYS.TABLES T JOIN SYS.SCHEMAS S ON (T.SCHEMA_ID = S.SCHEMA_ID)
WHERE S.NAME = 'DBO' AND T.NAME = 'sample2Prot'
)
BEGIN CREATE TABLE[TCPDUMP].[dbo].[sample2Prot]
(
[IdTransmission] INT IDENTITY(1, 1) NOT NULL,
[timestp] NVARCHAR(32) NULL,
[idq] NVARCHAR(32) NULL,
[idz] NVARCHAR(32) NULL,
[prot] NVARCHAR(32) NULL,
[Lhowmany] NVARCHAR(32) NULL,
[Rhowmany] NVARCHAR(32) NULL,
CONSTRAINT[PK_TCPDump] PRIMARY KEY CLUSTERED([IdTransmission] ASC)
)
END;
的CREATE my_table.."
部分作品,但如果該表已經存在,程序在執行期間引發錯誤:看起來「if not exists」語句不起作用。任何人都有解釋?
隨意問更多細節
'和t.name = my_table'似乎缺少引號。除此之外,我無法複製您的問題:此聲明不會嘗試創建已存在的表。 'IF(OBJECT_ID('dbo.mytable','U')IS NULL)'是一個較短的選擇。你是否試圖在錯誤的數據庫中執行這條語句,或者在沒有權限對該表執行任何操作的帳戶下執行該語句? –
您還需要創建一個表格作爲CREATE TABLE my_table ... – Leonidas199x
@ Leonidas199x我沒有複製這篇文章,因爲這部分似乎工作,但查詢的其餘部分存在x) –