【发布时间】:2010-09-29 03:31:16
【问题描述】:
我有一个我使用的 MySQL 查询脚本,它可以工作。
我正在尝试在 Microsoft SQL Server 中执行相同的查询,但有一件事我不明白。
MySql 使用“key”来定义一个由不同字段组成的键。
在 SQL Server 中做同样事情的方法是什么?
谢谢!
-阿迪娜
【问题讨论】:
标签: sql mysql sql-server
我有一个我使用的 MySQL 查询脚本,它可以工作。
我正在尝试在 Microsoft SQL Server 中执行相同的查询,但有一件事我不明白。
MySql 使用“key”来定义一个由不同字段组成的键。
在 SQL Server 中做同样事情的方法是什么?
谢谢!
-阿迪娜
【问题讨论】:
标签: sql mysql sql-server
在 MySQL 中,关键字 KEY 只是 INDEX 的同义词。以下两个是等价的:
CREATE TABLE foo (
id SERIAL PRIMARY KEY,
ctime DATETIME,
KEY ctkey (ctime)
);
CREATE TABLE foo (
id SERIAL PRIMARY KEY,
ctime DATETIME,
INDEX ctidx (ctime)
);
在 Microsoft SQL Server 中,最接近的等价物是 INDEX。据我所知,要在 Microsoft SQL Server 中的列上创建索引,您可以使用 CREATE INDEX。您还可以创建约束来构建索引作为CREATE TABLE 语句的一部分,但如果您只需要索引,请使用CREATE INDEX。
CREATE TABLE foo (
id BIGINT IDENTITY PRIMARY KEY,
ctime DATETIME
);
CREATE INDEX ctidx ON foo(ctime);
另请参阅CREATE INDEX 上的文档。
【讨论】:
您可以在 TSQL(SQL 服务器的查询语言)中声明由多列组成的主键
ALTER TABLE product
ADD CONSTRAINT prim_prod PRIMARY KEY(product_foo, product_bar)
如果你使用SQL Server Management studio,也可以通过“修改表”来实现。
【讨论】: