这个非常简单的查询我试图在SQL Server Management Studio中执行。但它给出了错误:
CREATE TABLE `contact` (
`contact_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`email` varchar(45) NOT NULL,
`address` varchar(45) NOT NULL,
`telephone` varchar(45) NOT NULL,
PRIMARY KEY (`contact_id`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8
错误是:
Msg 102,Level 15,State 1,Line 3
'''附近的语法不正确。
我也试过替换
with
'`但仍然没有帮助
答案 0 :(得分:4)
反引号(`
)字符仅用于MySql。这不标准。 Sql Server是一个完全不同的动物。您需要使用方括号([
和]
- 也不是标准的)来使用Sql Server封装表名和列名。 Sql Server还支持双引号("
),它们是SQL标准的一部分,但由于某些原因不太常见。
当我在它时,ENGINE和AUTO_INCREMENT以及CHARSET子句也是特定于MySql的。
试试这个:
CREATE TABLE contact (
contact_id int IDENTITY(25,1) NOT NULL PRIMARY KEY,
[name] varchar(45) NOT NULL,
email varchar(45) NOT NULL,
"address" varchar(45) NOT NULL,
telephone varchar(45) NOT NULL
)
答案 1 :(得分:1)
在tsql中
CREATE TABLE contact (
contact_id int identity(0,25) NOT NULL,
name nvarchar(45) NOT NULL,
email nvarchar(45) NOT NULL,
address nvarchar(45) NOT NULL,
telephone nvarchar(45) NOT NULL
CONSTRAINT contact_PK PRIMARY KEY (contact_id)
)
您无法指定引擎。
identity(0,25)表示初始值= 0,增量= 25
您没有为表格指定字符集,您可以将各列声明为varchar或nvcarchar - n代表unicode。您还可以为每列指定归类序列。
如果您想要一个不规则的列名(关键字,嵌入空格等),请将列名引用为[列名] - 如果您有选择,请不要使用不规则的列名,它只是让事情变得痛苦。
答案 2 :(得分:0)
试试这样:
CREATE TABLE contact (
contact_id[int] IDENTITY(1,1) NOT NULL,
name varchar(45) NOT NULL,
email varchar(45) NOT NULL,
address varchar(45) NOT NULL,
telephone varchar(45) NOT NULL,
PRIMARY KEY (contact_id)
)
希望这可以帮助你。