需要帮助您了解错误“由于索引或统计名称为'XPKUSERS',操作失败,并且需要将查询转换为TSQL
CREATE TABLE TDM_USERS_AUTH
(
USER_ROLE_ID VARCHAR(3) NOT NULL
, ROLE VARCHAR(100) NOT NULL
, USER_ID VARCHAR(15) NOT NULL
);
CREATE UNIQUE INDEX XPKUSERS ON TDM_USERS_AUTH (USER_ROLE_ID ASC);
ALTER TABLE TDM_USERS_AUTH
ADD CONSTRAINT XPKUSERS PRIMARY KEY
(
USER_ROLE_ID
)
USING INDEX XPKUSERS;
消息1913年,第16级,状态1,第1行
该操作失败,因为表'TDM_USERS_AUTH'上已经存在名称为'XPKUSERS'的索引或统计信息。
信息1750,级别16,状态0,第1行
无法创建约束或索引。查看以前的错误。
答案 0 :(得分:2)
USING INDEX
子句是特定于Oracle的语法。在SQL Server中,创建主键时始终会创建一个新索引。您只能选择新索引是群集索引(默认情况下)还是非群集索引。
您可以简单地创建PRIMARY KEY(之前无需创建索引),如下所示:
CREATE TABLE TDM_USERS_AUTH
(
USER_ROLE_ID VARCHAR(3) NOT NULL
, ROLE VARCHAR(100) NOT NULL
, USER_ID VARCHAR(15) NOT NULL
);
ALTER TABLE TDM_USERS_AUTH
ADD CONSTRAINT XPKUSERS PRIMARY KEY
(
USER_ROLE_ID
);
您还可以在创建表时指定主键:
CREATE TABLE TDM_USERS_AUTH
(
USER_ROLE_ID VARCHAR(3) NOT NULL CONSTRAINT XPKUSERS PRIMARY KEY
, ROLE VARCHAR(100) NOT NULL
, USER_ID VARCHAR(15) NOT NULL
);