SQL语句,在企业管理器中或者查询分析器中如何实现?
SQL语句,我先在企业管理器中输入:SELECT TOP 2500 classname, client, truenamemobile
FROM Sm_address
WHERE (classname = '2003购车无地址')然后再跟一句update Sm_address set classname = '2003购车无地址1'是否可以把选择出的这2500条的classname字段值改掉?
现在经多方询问是不可以的,那要怎么才能实现呢?
问题点数:10、回复次数:17Top
1 楼itzhiren(itzhiren)回复于 2005-10-17 11:06:16 得分 0
打开查询分析器,当前数据库选择为你要更新的数据库,然后输入
update Sm_address set classname = '2003购车无地址1' where classname = '2003购车无地址'
执行,就可以了
Top
2 楼itzhiren(itzhiren)回复于 2005-10-17 11:07:02 得分 0
当然,在企业管理器里面执行也可以,只要语句对就行了。
这两句合并成一句就可以了
update Sm_address set classname = '2003购车无地址1' where classname = '2003购车无地址'
Top
3 楼roseandwort(常春藤)回复于 2005-10-17 11:13:36 得分 0
可我还要选择出2500条呢Top
4 楼itzhiren(itzhiren)回复于 2005-10-17 11:16:50 得分 0
SELECT TOP 2500 classname, client, truenamemobile
FROM Sm_address
WHERE (classname = '2003购车无地址')
就可以了Top
5 楼itzhiren(itzhiren)回复于 2005-10-17 11:19:32 得分 0
其实在查询分析器里面,如果你输入了以下两条语句:
SELECT TOP 2500 classname, client, truenamemobile
FROM Sm_address
WHERE (classname = '2003购车无地址')
update Sm_address set classname = '2003购车无地址1' where classname = '2003购车无地址'
那么如果直接执行,这两条语句就同时执行了;如果选中了其中一条语句,就执行你选中的哪一条语句,另外一条不执行。Top
6 楼roseandwort(常春藤)回复于 2005-10-17 11:21:37 得分 0
我同时输入两条,只执行那条select,后面的update不执行,不会两条都执行的,我现在用的这句:
UPDATE Sm_address
SET classname = '2003购车无地址1'
FROM (SELECT TOP 2500 classname, client, truenamemobile
FROM Sm_address)
WHERE (classname = '2003购车无地址')
但:在关键字 'WHERE' 附近有语法错误。所以不知道怎么改了Top
7 楼AppleBBS(Dicky)回复于 2005-10-17 11:22:04 得分 0
企业管理器一次只能执行一条语句的Top
8 楼itzhiren(itzhiren)回复于 2005-10-17 11:25:56 得分 0
UPDATE Sm_address
SET classname = '2003购车无地址1'
WHERE (classname = '2003购车无地址')
这样就可以了,不需要那个from子句Top
9 楼roseandwort(常春藤)回复于 2005-10-17 11:30:30 得分 0
现在表里有1万条记录,classname字段的值是:2003购车无地址,我想把这一万条记录分成4个2500条,classname字段的值分别是:2003购车无地址1,2003购车无地址2,2003购车无地址3,2003购车无地址4 所以只能用这条语句来试试,没想到更好的办法
所以必须要选中2500条然后再update 字段classname的值Top
10 楼itzhiren(itzhiren)回复于 2005-10-17 11:34:43 得分 0
这一万条记录肯定有一个唯一标志吧?(我给你假设是id)
你可以这样:
UPDATE Sm_address
SET classname = '2003购车无地址1'
WHERE (classname = '2003购车无地址') and id<=2500
UPDATE Sm_address
SET classname = '2003购车无地址1'
WHERE (classname = '2003购车无地址') and id>2500 and id<=5000
UPDATE Sm_address
SET classname = '2003购车无地址1'
WHERE (classname = '2003购车无地址') and id>5000 and id<=5500
UPDATE Sm_address
SET classname = '2003购车无地址1'
WHERE (classname = '2003购车无地址') and id>5500 and id<=10000
Top
11 楼itzhiren(itzhiren)回复于 2005-10-17 11:35:23 得分 10
上面写错了:
UPDATE Sm_address
SET classname = '2003购车无地址1'
WHERE (classname = '2003购车无地址') and id<=2500
UPDATE Sm_address
SET classname = '2003购车无地址2'
WHERE (classname = '2003购车无地址') and id>2500 and id<=5000
UPDATE Sm_address
SET classname = '2003购车无地址3'
WHERE (classname = '2003购车无地址') and id>5000 and id<=5500
UPDATE Sm_address
SET classname = '2003购车无地址4'
WHERE (classname = '2003购车无地址') and id>5500 and id<=10000
Top
12 楼itzhiren(itzhiren)回复于 2005-10-17 11:37:03 得分 0
当然,这种方法要从最后一句开始执行,然后倒数第二句,倒数第三句,倒数第四句Top
13 楼hl2lm(有事请打我手机!)回复于 2005-10-17 11:40:02 得分 0
顶
Top
14 楼lsgis2001(程序爱好者)回复于 2005-10-17 11:40:23 得分 0
用存储过程吧。
可以写一个小程序然后用“游标”来处理。Top
15 楼roseandwort(常春藤)回复于 2005-10-17 11:44:23 得分 0
噢,真够麻烦的,可我这个表里classname的值除了是:'2003购车无地址之外还有值是别的很多记录,那个id是穿插的不是一直顺下去的.Top
16 楼ylczy(学无止境)回复于 2005-10-17 11:44:33 得分 0
用子表查询,这样写对不对
update Sm_address set classname = '2003购车无地址1' where classname in
(SELECT TOP 2500 classname, client, truenamemobile
FROM Sm_address WHERE classname = '2003购车无地址')
Top
17 楼roseandwort(常春藤)回复于 2005-10-17 12:50:02 得分 0
ylczy(学无止境) ,你的那句也不行Top
相关问题
- 急问!!!在企业管理器中可以建立名为数字的用户表,但用查询分析器写SQL语句为什么不可以?
- Sql服务管理器能够启动,企业管理器和查询分析器连不上了……
- 为何有的语句在查询分析器中可以,而在企业管理器中非法?
- 现在我的企业管理器打不开了,只能用查询分析器,可我不知道怎样用SQL语句在原表的基础上增加字段并设置其类型
- 为什么我的企业管理器连不上远程sql server数据库?查询分析器却可以
- 如何在查询分析器用语句登陆网络sql服务其
- 在SQL查询分析器里修改表中数据(语句不会写)??!!
- SQL语句在ASP中不能执行,在查询分析器中行
- 怎样在查询分析器里执行所有的SQL语句
- 请教一条简单的SQL查询分析器中的语句




