Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在SQL中创建表_Sql_Sql Server_Tsql - Fatal编程技术网

无法在SQL中创建表

无法在SQL中创建表,sql,sql-server,tsql,Sql,Sql Server,Tsql,这是我正在使用的脚本。随后是错误 Server:Msg 1776,16级,状态1,第1行 引用的表“xcode”中没有主键或候选键 与外键“FK_EXAMPLE_X”中的引用列列表相匹配。 服务器:Msg 1750,16级,状态1,第1行 无法创建约束。请参阅前面的错误。 My X table有5个字段,但其中一个是作为主键的xcode。您尝试加入的辅助表中没有主键。将主键添加到您尝试加入的表中,并确保次表和主表的数据类型相同 例如: CREATE TABLE example ( ycode

这是我正在使用的脚本。随后是错误

Server:Msg 1776,16级,状态1,第1行
引用的表“xcode”中没有主键或候选键
与外键“FK_EXAMPLE_X”中的引用列列表相匹配。
服务器:Msg 1750,16级,状态1,第1行
无法创建约束。请参阅前面的错误。

My X table有5个字段,但其中一个是作为主键的xcode。

您尝试加入的辅助表中没有主键。将主键添加到您尝试加入的表中,并确保次表和主表的数据类型相同

例如:

CREATE TABLE example 
(
ycode char(5) NOT NULL,
xcode char(10) NOT NULL,
CONSTRAINT PK_EXAMPLE PRIMARY KEY (ycode,xcode),
CONSTRAINT FK_EXAMPLE_Y FOREIGN KEY (ycode) REFERENCES ycode(ycode),
CONSTRAINT FK_EXAMPLE_X FOREIGN KEY (xcode) REFERENCES xcode(xcode),
);

“我的X表有5个字段,但其中一个是xcode作为主键。”你确定吗?错误表明情况并非如此。请格式化SQL语句并为xcode表提供架构。您有一个名为xcode的表,其中有一列xcode,该列是主键?创建表X(xcode char(10)不为空,type char(2)不为空,title varchar(100)NULL,cipdesc varchar(MAX)NULL,titls varchar(35)NULL,level char(1),CONSTRAINT PK_X主键(X,type),CONSTRAINT FK_X_OCCTYPES外键(type)引用OCCTYPES(type),);这是X表的创建脚本。xcode是第一个字段,是主键和字符(10)。您有一个名为X的表,但在原始代码中根本没有引用它。这就是为什么编写可读代码很有用的原因!:)我为一个州政府工作,所以不能粘贴准确的代码。X的创建脚本在第475行,示例是2988。不确定这是否相关,但似乎有一些订单。谢谢你提供的信息。问题是,我的辅助表中的外键与主表中的外键不同。这很复杂,但是你的例子间接地给出了解决方案。没问题,如果你对答案满意,就把它标记为完整。
--Works
IF OBJECT_ID('.X') IS NOT NULL 
    DROP TABLE .X;
CREATE TABLE X (Id INT IDENTITY, YId INT, Val VARCHAR(8), CONSTRAINT PK_X_Id PRIMARY KEY (Id))

IF OBJECT_ID('.Y') IS NOT NULL 
    DROP TABLE .Y;
CREATE TABLE Y (Id INT IDENTITY, Val VARCHAR(8), CONSTRAINT PK_Y_Id PRIMARY KEY (Id))

ALTER TABLE dbo.X
ADD CONSTRAINT FK_X_Y_Id FOREIGN KEY(YId) REFERENCES Y(Id)

--Fails, due to Table Y not having appropriate Primary Key
IF OBJECT_ID('.X') IS NOT NULL 
    DROP TABLE .X;
CREATE TABLE X (Id INT IDENTITY, YId INT, Val VARCHAR(8), CONSTRAINT PK_X_Id PRIMARY KEY (Id))

IF OBJECT_ID('.Y') IS NOT NULL 
    DROP TABLE .Y;
CREATE TABLE Y (Id INT IDENTITY, Val VARCHAR(8))

ALTER TABLE dbo.X
ADD CONSTRAINT FK_X_Y_Id FOREIGN KEY(YId) REFERENCES Y(Id)