什么用于SQL Server而不是“密钥”?

时间:2009-01-01 18:00:30

标签: sql mysql sql-server

我有一个MySQL查询脚本,我使用它并且有效。

我正在尝试在Microsoft SQL Server中执行相同的查询,有一件事我不明白。

MySql使用“key”来定义由不同字段组成的密钥。

在SQL Server中执行相同操作的方法是什么?

谢谢!

-Adeena

2 个答案:

答案 0 :(得分:2)

您可以声明由TSQL中的多个列组成的主键(SQL服务器的查询语言)

ALTER TABLE product
    ADD CONSTRAINT prim_prod PRIMARY KEY(product_foo, product_bar)

如果您使用SQL Server Management studio,您也可以通过“修改表”来实现此目的。

答案 1 :(得分:1)

在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上的文档。