Sql 在一个命令中拖放和创建表
您知道为什么下面的代码在ms sql server上是错误的吗Sql 在一个命令中拖放和创建表,sql,sql-server,exists,create-table,Sql,Sql Server,Exists,Create Table,您知道为什么下面的代码在ms sql server上是错误的吗 DROP TABLE [IF EXISTS] database.table1, create table table1 (...) 这就是SQL Server 2016的语法。 对于早期版本,您可以使用EXISTS功能检查您的表是否存在于sys.tables列表中,如果存在,则将其删除。然后创建一个新表 有点像这样: IF EXISTS (SELECT * FROM sys.tables WHERE name = 'table1'
DROP TABLE [IF EXISTS] database.table1,
create table table1 (...)
这就是SQL Server 2016的语法。 对于早期版本,您可以使用
EXISTS
功能检查您的表是否存在于sys.tables
列表中,如果存在,则将其删除。然后创建一个新表
有点像这样:
IF EXISTS (SELECT * FROM sys.tables WHERE name = 'table1' AND type = 'U') DROP TABLE table1;
CREATE TABLE table1
(
...
...
);
这就是SQL Server 2016的语法。 对于早期版本,您可以使用
EXISTS
功能检查您的表是否存在于sys.tables
列表中,如果存在,则将其删除。然后创建一个新表
有点像这样:
IF EXISTS (SELECT * FROM sys.tables WHERE name = 'table1' AND type = 'U') DROP TABLE table1;
CREATE TABLE table1
(
...
...
);
此语法仅在上有效,尚未发布 您确定正在使用该版本吗?
否则,您可以使用IF Exists that.此语法仅在上有效,尚未发布 您确定正在使用该版本吗?
否则,您可以使用IF-Exists。如果您不介意我问一下,您会使用什么样的场景?这些命令的结果基本上是一个
truncate
?你有错误吗?请花些时间阅读。@Utsav是否正在更改现有表的架构?@MorganThrapp-是的,这可能是一个场景。开始尝试
/结束尝试
和创建表
内部…如果您不介意我问一下,您会使用它作为什么场景?这些命令的结果基本上是一个truncate
?你有错误吗?请花一些时间阅读。@Utsav是否更改现有表的架构?@MorganThrapp-是的,这可能是一个场景。开始尝试
/结束尝试
和创建表
内部…对于不熟悉的人-实际上是技术上的(还记得你问过“你知道为什么下面的代码在ms sql server上是错误的吗?”),虽然这是有帮助的,但它不应该是公认的答案。它不起作用,因为您试图在运行的任何SQL Server版本中使用SQL Server 2016语法。由于SQL Server 2016
尚未上市,因此可以安全地假设他使用的是以前版本的SQL Server;这就是我的答案。无论如何,我现在编辑了我的答案,以反映正确的含义。对于不熟悉的人——实际上是技术上的(还记得你问过“你知道为什么下面的代码在ms sql server上是错误的吗?”),虽然这很有帮助,但它不应该是公认的答案。它不起作用,因为您试图在运行的任何SQL Server版本中使用SQL Server 2016语法。由于SQL Server 2016
尚未上市,因此可以安全地假设他使用的是以前版本的SQL Server;这就是我的答案。无论如何,我现在编辑了我的答案,以反映正确的含义。