簡體   English   中英

CREATE OR ALTER TABLE 因“關鍵字‘TABLE’附近的語法不正確”而失敗

[英]CREATE OR ALTER TABLE is failing with "Incorrect syntax near the keyword 'TABLE'"

我正在嘗試在數據庫中創建幾個表。
& 我使用的工具是 Azure Data Studio。

命令我正在使用它:-

CREATE OR ALTER TABLE TABLE_NAME
(
    Date         datetime,
    Sequence         nvarchar(8),
    Code     nvarchar(3),
)
    GO

我得到的錯誤:- 在此處輸入圖像描述

我想做的是,如果不存在則創建一個表,或者如果它存在則更改它。 我無法理解為什么它會失敗。

我們已經在 Stackover Flow 本身上提供了一些可用信息Incorrect Syntax near the keyword 'OR' in CREATE OR ALTER PROCEDURE

我們在這里create and alter了外部表。

為什么這不起作用?

我發現表沒有 CREATE OR ALTER 語法。 它僅適用於視圖、觸發器、函數和存儲過程。

相應的 MSSQL Tiger Team 博客文章解釋了這種情況:-

CREATE OR ALTER 可用於可編程對象,例如:

  • 存儲過程(包括本機編譯的)
  • 函數(Transact-SQL,包括本機編譯的)
  • 觸發器
  • 觀點

但不能用於:需要存儲的對象(表、索引和索引視圖)

  • CLR 用戶定義函數
  • 已棄用的可編程性對象(RULE 和 DEFAULT)
  • 非可編程對象(例如 CREATE ASSEMBLY、CREATE TABLE 或 CREATE - SCHEMA)。 在這些對象上,CREATE 和 ALTER 的語法從語法和可用性的角度來看非常不同。

相反,我們可以創建表(如果它不存在)(例如像這里一樣)或者先顯式刪除它:

DROP TABLE IF EXISTS FOO;
CREATE TABLE FOO (...)

或者

DROP TABLE IF EXISTS FOO;
    GO
CREATE TABLE FOO (...)

兩者都可以正常工作。

我希望這會對社區有所幫助。

暫無
暫無

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

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