[英]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.