如何屏蔽数据库里面的约束

yztyzt 2006-04-17 02:05:05
问题1
如果我从另外一个库中的表向另外一个库中的表插入数据时,被插入的库中的表存在主键,外键约束,数据库不允许插入,用什么批处理命令能使这些约束失效,或都说让它们关闭,插完数据时再打开?

问题2
在一个库中新建相同结构的库时,如果以前建立的表中有约束,则不允许建立,但我又想建一样的表,这个怎么解决如:
在查询分析器中执行如下语句(数据库中已经存在名为fitting1的同样结构的表)
use bjpgtotal
go

CREATE TABLE [fittings2] (
[fid] [int] IDENTITY (1, 1) NOT NULL ,
[fittingsId] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[fittingsCode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[fname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[style_id] [int] NULL ,
[kind1] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[kind2] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[spec] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[metricunit] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[location] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[company_id] [int] NULL ,
CONSTRAINT [PK_fittings] PRIMARY KEY CLUSTERED
(
[fid]
) ON [PRIMARY]
) ON [PRIMARY]
GO
出现如下错误提示:
服务器: 消息 2714,级别 16,状态 4,行 2
数据库中已存在名为 'PK_fittings' 的对象。
服务器: 消息 1750,级别 16,状态 1,行 2
未能创建约束。请参阅前面的错误信息。
...全文
117 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
itblog 2006-04-17
  • 打赏
  • 举报
回复
学习~
OracleRoob 2006-04-17
  • 打赏
  • 举报
回复

问题1

可以使用alter table中的WITH NOCHECK
但WITH NOCHECK 子句不能用于 PRIMARY KEY 和 UNIQUE 约束。



问题2

新建相同结构和约束的表时,表名和约束名不能和原有的表名约束名重复。
如:
CONSTRAINT [PK_fittings] PRIMARY KEY CLUSTERED
(
[fid]
) ON [PRIMARY]

--->改为

CONSTRAINT [PK_fittings2] PRIMARY KEY CLUSTERED
(
[fid]
) ON [PRIMARY]

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧