导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

简单关系图的问题

ivy_ou 2003-12-18 02:16:16
我有三个表
PSort,PSSort,Product表,分别是产品大类表,产品小类表,产品表
我建立三个表的关系图
PSort和PSSort能建立关系(创建中检查现存数据,对insert和update强制关系,对复制关系,级联更新相关字段,级联删除相关字段.)
PSort和Product也能建立关系(创建中检查现存数据,对insert和update强制关系,对复制关系,级联更新相关字段,级联删除相关字段.)
但是PSSort和Product就不能建立了,不明白为什么.只能建立(创建中检查现存数据,对insert和update强制关系,对复制关系,级联更新相关字段)就是不能建立级联更新相关字段,级联删除相关字段.
提示错误是
'PSSort' 表成功保存
'Product' 表
- 不能创建关系 'FK_Product_PSSort'。
ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]将 FOREIGN KEY 约束 'FK_Product_PSSort' 引入表 'Product' 中将导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其它 FOREIGN KEY 约束。
[Microsoft][ODBC SQL Server Driver][SQL Server]未能创建约束。请参阅前面的错误信息。

请问是什么问题
...全文
6 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohui20031984 2003-12-18
关系图问题:
你必须先给相应的表设置主健以及外建。
代码如下:
alter table PSort
add constraint PSortID_pkey primary key(PSortId)

alter table PSSort
add constraint pssortid_pkey primary key(pssortid)

alter table product
add constraint pssortid_fkey foreign key(pssortid) references(pssort)
add constraint psortid_fkey foreign key(psortid) references(psort)
alter table pssort
add constraint psortid_fkey foreign key(psortid) references(psort)

2主键,外建建完之后。
进入企业管理器利用,
找到 关系图点几右键
按照向导
、去做
就可以了!!!
回复
ivy_ou 2003-12-18
下面是生成的脚本

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Product_PSort]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Product] DROP CONSTRAINT FK_Product_PSort
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_PSSort_PSort]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[PSSort] DROP CONSTRAINT FK_PSSort_PSort
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Product]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Product]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PSSort]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[PSSort]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PSort]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[PSort]
GO

CREATE TABLE [dbo].[Product] (
[ProductID] [int] IDENTITY (1, 1) NOT NULL ,
[PSortid] [int] NOT NULL ,
[PSSortid] [int] NOT NULL ,
[Productname] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Pic] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Content] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[updatetime] [smalldatetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[PSSort] (
[PSSortid] [int] IDENTITY (1, 1) NOT NULL ,
[PSortid] [int] NOT NULL ,
[PSSortname] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[PSort] (
[PSortID] [int] IDENTITY (1, 1) NOT NULL ,
[PSortName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[serial] [int] NULL
) ON [PRIMARY]
GO

回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告