大伙看看,如何实现这个功能呢?

aboys 2003-07-14 07:27:29
有两个表(AB),字段一样
[SOPTYPE] [smallint] NOT NULL ,
[SOPNUMBE] [char] (21) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ORIGTYPE] [smallint] NOT NULL ,
[ORIGNUMB] [char] (21) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[DOCID] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[DOCDATE] [datetime] NOT NULL ,
[GLPOSTDT] [datetime] NOT NULL ,
[QUOTEDAT] [datetime] NOT NULL ,
[QUOEXPDA] [datetime] NOT NULL ,
[ORDRDATE] [datetime] NOT NULL ,
[INVODATE] [datetime] NOT NULL ,
[BACKDATE] [datetime] NOT NULL ,
[RETUDATE] [datetime] NOT NULL ,
[ReqShipDate] [datetime] NOT NULL ,
[FUFILDAT] [datetime] NOT NULL ,
[ACTLSHIP] [datetime] NOT NULL ,
[DISCDATE] [datetime] NOT NULL ,
[DUEDATE] [datetime] NOT NULL ,
[REPTING] [tinyint] NOT NULL ,
[TRXFREQU] [smallint] NOT NULL ,
[TIMEREPD] [smallint] NOT NULL ,
[TIMETREP] [smallint] NOT NULL ,
[DYSTINCR] [smallint] NOT NULL ,
[TYPE] [varchar](100) NOT NULL

如果TYPE的值是'UPDATE',那么以A中的数据UPDATE表B中的数据(根据唯一字段SOPTYPE),不用游标,因为这样需要定义的变量太多了

..........各位大侠献策献计吧,谢谢
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nboys 2003-07-14
  • 打赏
  • 举报
回复
update b set b.SOPNUMBE=a.SOPNUMBE..............
from a join b on a.SOPTYPE = b.SOPTYPE
zjcxc 2003-07-14
  • 打赏
  • 举报
回复
update b set
[SOPTYPE]=a.[SOPTYPE]
,[SOPNUMBE]=a.[SOPNUMBE]
,[ORIGTYPE]=a.[ORIGTYPE]
,[ORIGNUMB]=a.[ORIGNUMB]
,[DOCID]=a.[DOCID]
,DOCDATE]=a.[DOCDATE]
,GLPOSTDT]=a.[GLPOSTDT]
,QUOTEDAT]=a.[QUOTEDAT]
,QUOEXPDA]=a.[QUOEXPDA]
,ORDRDATE]=a.[ORDRDATE]
,INVODATE]=a.[INVODATE]
,BACKDATE]=a.[BACKDATE]
,RETUDATE]=a.[RETUDATE]
,ReqShipDate]=a.[ReqShipDate]
,FUFILDAT]=a.[FUFILDAT]
,ACTLSHIP]=a.[ACTLSHIP]
,DISCDATE]=a.[DISCDATE]
,DUEDATE]=a.[DUEDATE]
,REPTING]=a.[REPTING]
,TRXFREQU]=a.[TRXFREQU]
,TIMEREPD]=a.[TIMEREPD]
,TIMETREP]=a.[TIMETREP]
,DYSTINCR]=a.[DYSTINCR]
,TYPE]=a.[TYPE]
from a,b where a.SOPTYPE=b.SOPTYPE and a.type='update'
pengdali 2003-07-14
  • 打赏
  • 举报
回复
update B set SOPNUMBE=a.SOPNUMBE,ORIGTYPE=a.ORIGTYPE,ORIGNUMB=a.ORIGNUMB,DOCID=a.DOCID,
DOCDATE=a.DOCDATE,GLPOSTDT=a.GLPOSTDT,QUOTEDAT=a.QUOTEDAT,QUOEXPDA=a.QUOEXPDA,ORDRDATE=a.ORDRDATE
INVODATE=a.INVODATE,BACKDATE=a.BACKDATE,RETUDATE=a.RETUDATE,ReqShipDate=a.ReqShipDate,FUFILDAT=a.FUFILDAT
,ACTLSHIP=a.ACTLSHIP,DISCDATE=a.DISCDATE,DUEDATE=a.DUEDATE,REPTING=a.REPTING,TRXFREQU=a.TRXFREQU,TIMEREPD=a.TIMEREPD
,TIMETREP=a.TIMETREP,DYSTINCR=a.DYSTINCR,TYPE=a.TYPE
from a where a.SOPTYPE=b.SOPTYPE
hbwhwanghua 2003-07-14
  • 打赏
  • 举报
回复
两表通过一条UPDATE语句就可以了,

update a set a.字段名= b.字段名 from a,b where a.SOPTYPE = b.SOPTYPE
friendliu 2003-07-14
  • 打赏
  • 举报
回复
update b set b.SOPNUMBE=a.SOPNUMBE
.....

from a where (a.type='update' and a.soptye=b.soptype

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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