CREATE TABLE IF NOT EXISTS
在 MySQL 中可行,但在 SQL Server 2008 R2 中会失败。相应的语法是什么?
CREATE TABLE IF NOT EXISTS
在 MySQL 中可行,但在 SQL Server 2008 R2 中会失败。相应的语法是什么?
if not exists (select * from sysobjects where name='cars' and xtype='U')
create table cars (
Name varchar(64) not null
)
go
如果表格不存在,则以上代码将创建一个名为cars
的表格。
sys.tables
目录视图,而不是要记住表格是什么晦涩的 xtype
... - marc_sif not exists (select * from sys.tables t join sys.schemas s on (t.schema_id = s.schema_id) where s.name = 'myschema' and t.name = 'cars') create table myschema.cars ( Name varchar(64) not null )
。如果不存在(名称为'myschema'和'tables'的表中),则创建一个名为'myschema.cars'的新表,其中包含一个名为“Name”的varchar类型列(不允许为空)。 - bartIF OBJECT_ID(N'dbo.Cars', N'U') IS NULL BEGIN CREATE TABLE dbo.Cars (Name varchar(64) not null); END;
- hastrb
GO
,所以我们不能将创建命令放在BEGIN
和END
块中,就像其他问题的答案建议的那样。 - BistroY
,而他们实际上正在问X
(与 XY 问题不同,提问者在尝试解决X
时询问Y
)。也就是说,提问者做得没错,但问题还是被关闭了。难过的表情 - binki