2009-01-01 41 views
0

我有一个我使用和工作的MySQL查询脚本。什么用于SQL Server而不是“密钥”?

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

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

在SQL Server中做同样的事情的方法是什么?

谢谢!

-Adeena

回答

2

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

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

如果使用SQL Server Management Studio中,你也可以做到这一点通过“修改表格”。

+0

嗯......我认为那里只能有一个主键? – adeena 2009-01-01 18:12:08

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

相关问题