navicat for sqlserver 查询结果不能修改
网上搜索很多答案,均无效。1,sql2000数据库,使用企业管理器查询select*fromtablewhereid=66其结果可以直接修改,十分方便。2,同一个数据库,...
网上搜索很多答案,均无效。
1,sql2000数据库,使用企业管理器查询 select * from table where id=66 其结果可以直接修改,十分方便。
2,同一个数据库,使用navicat for sqlserver,同样的语句,查询结果无法修改,状态栏显示只读。
3,网上搜索,什么建主键之类,都不上正确答案。还有说查询语句改为 select id,列1,列2 这样的格式,也不行。
4,sql2005express和sql2008express,使用navicat for sqlserver ,也是这个情况。
怎么解决? 展开
1,sql2000数据库,使用企业管理器查询 select * from table where id=66 其结果可以直接修改,十分方便。
2,同一个数据库,使用navicat for sqlserver,同样的语句,查询结果无法修改,状态栏显示只读。
3,网上搜索,什么建主键之类,都不上正确答案。还有说查询语句改为 select id,列1,列2 这样的格式,也不行。
4,sql2005express和sql2008express,使用navicat for sqlserver ,也是这个情况。
怎么解决? 展开
1个回答
展开全部
navicat本来就是这样设计的,无法在查询结果里面修改的。他的原意是这只是一个从原来的表中衍生出的一个中间表,用户无法对中间表进行修改。这个理念是正确的,navicat也是遵循这样的原则,没有任何问题,只不过sql express这个工具提供修改也只是站在用户的角度上来设计的,让用户体验更好一点,也没有问题。那么问题到底是什么?难不成是用户的问题,没错,就是用户的问题!!我们都知道数据库的基本表的概念,那么中间表呢?只是基本表的一部分,我们用到中间表的时候往往是在给其中一些用户提供他们自己所需要的那部分数据,这才是问题的关键,如果用户可以操作那部分数据很容易就产生一些问题,举一个例子。比如说我有一个字段叫名字,李四访问了自己的那部分数据,然后他把名字改成张三,提示数据库已经存在张三,那么他就知道了张三也是这个数据库里面的一部分。。。这就是问题,所以针对于这个问题来说,你想要在中间表里面修改数据,无解。。。但是应该可以通过其他的办法做,比如说函数,或者直接修改原表的内容。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询