sql里面如何通过一个临时表的数据,修改另外一个表的数据,我定义游标,时常报错!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql里面如何通过一个临时表的数据,修改另外一个表的数据,我定义游标,时常报错!相关的知识,希望对你有一定的参考价值。
select distinct work_no, mc, CARD_NO into #Tmp from rec_rou where rec_date='20110611'
select * from #tmp
declare @work_no varchar
declare @CARD_NO varchar
declare t_cursor cursor
for select work_no,CARD_NO from #tmp
open t_cursor
fetch next from t_cursor into @work_no,@CARD_NO
while @@fetch_status=0
begin
update rec_rou set work_no=#temp.work_no where #tmp.CARD_NO=card_no and rec_date>='20110611'
fetch next from t_cursor into @work_no,@CARD_NO
end
改成
update rec_rou set work_no=#temp.work_no
from #tmp,rec_rou
where #tmp.CARD_NO=rec_rou .card_no and rec_date>='20110611'追问
谢谢,我这里还是发现我定义的那个游标不能用,是不是我的语法有问题?我怎么测试都报错?
Server: Msg 107, Level 16, State 2, Line 13
The column prefix '#temp' does not match with a table name or alias name used in the query.
你定义的临时表是 #Tmp 但是update 语句里面写的是#temp' 所以报错,改回来看看
参考技术B CREATE [OR REPLACE] [ALGORITHM = UNDEFINED | MERGE | TEMPTABLE]VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]本回答被提问者采纳
sql server如何将字段添加到第一列
如题、向表里添加一个字段,但默认情况下该字段是在最后的,怎样才能添加到第一列,用SQL语句。
参考技术A 打开企业管理器----数据库---打开你要修改的表--右击选择所有任务----返回所有行,现在你就打开了表选中第一行右击插入列,这样就在第一行了 参考技术B 只有两个办法:
1.直接用企业管理器修改
2.删除关联,创建一个临时表,把数据备份到临时到,再重新创建表与关联,再把临时表的数据复制过来,再删除临时表本回答被提问者采纳 参考技术C 表内的字段顺序在存储时无关紧要,你可以在查询时指定顺序。
如果是一些规范要求特定字段按顺序排列的话,有两种情况,
1、表内无数据的话,可以在企业管理器中直接修改,或者用alter table来做。
2、表内含有数据,可以用select newcol,* into temptable from tablename
然后把tablename删除了,再把temptable改名为tablename就可以了。 参考技术D 一个最简单实用的方法..
添加的语句应该是你会写了的吧.
我就写添加后的吧.
select col3,col1,col2 into #tb from tablename
drop table tablename
select * into tablename from #tb
以上是关于sql里面如何通过一个临时表的数据,修改另外一个表的数据,我定义游标,时常报错!的主要内容,如果未能解决你的问题,请参考以下文章
SQL 创建一个临时表#tabletemp 里面有两个字段“cn”和“dt”分别用来存储另一个表的字段名和数据类型。