向高手请教:在修改数据的时候,不能修改,提示找不到分区列,能指点一下是什么原因吗?

jiangsa 2003-08-31 08:55:13
向高手请教:在修改数据的时候,不能修改,提示找不到分区列,能指点一下是什么原因吗
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fjzhs 2004-01-03
  • 打赏
  • 举报
回复
非常感谢楼上的朋友
zarge 2003-08-31
  • 打赏
  • 举报
回复
你是在视图上修改吗?直接在物理表上修改试试
maoyesky 2003-08-31
  • 打赏
  • 举报
回复
是不是有重复记录。
happydreamer 2003-08-31
  • 打赏
  • 举报
回复
分区视图吗?

看个例子,不同的表上的列要能区分才可以更新视图

分区视图问题,大概的意思是:

create table t1
(tid int not null,
tdate datetime not null ,
norder varchar(5) not null,
constraint PK_t1 primary key (tid,tdate),
constraint UQ_t1 unique(norder),
constraint CHK_t1 check(tdate >= '20030101' and tdate< '20030131')
)


create table t2
(tid int not null,
tdate datetime not null ,
norder varchar(5) not null,
constraint PK_t2 primary key (tid,tdate),
constraint UQ_t2 unique(norder),
constraint CHK_t2 check(tdate >= '20030201' and tdate< '20030228')
)


create view t_view
as
select * from t1
union all
select * from t2


insert into t_view(tid,tdate,norder) values(1,'20030111','app')
可以执行


接着做以下试验: 用查询分析器修改表结构

alter table t1 alter column norder varchar(15) not null
alter table t2 alter column norder varchar(15) not null

执行
insert into t_view(tid,tdate,norder) values(2,'20030101','aaaa')
没有问题


但如果用企业管理器来修改,再执行
insert into t_view(tid,tdate,norder) values(2,'20030101','aaaa')
就会报错
UNION ALL 视图 't_view' 不可更新,因为没有找到分区列
sdhdy 2003-08-31
  • 打赏
  • 举报
回复
用的分区视图?照楼上的试一试

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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