繁体   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