1、你的问题没有描述清楚,没有出错信息,或者你需要的结果,也没有表结构描述,一般要猜才能回答,好多人不愿意猜。
2、昨天和今天是周末,好多人休息。
3、有个明显的问题是:set dist=@dist dd=@dist-fl
应该改为set dist=@dist,dd=@dist-fl
4、可能有问题的一句:
where rank=@rank and workcode=@workcode and code=@code
其中rank、workcode、code可能在多个表有字段,会出错。(这是猜的)
2、昨天和今天是周末,好多人休息。
3、有个明显的问题是:set dist=@dist dd=@dist-fl
应该改为set dist=@dist,dd=@dist-fl
4、可能有问题的一句:
where rank=@rank and workcode=@workcode and code=@code
其中rank、workcode、code可能在多个表有字段,会出错。(这是猜的)
解决方案 »
- 请教一个MSSQL触发器的问题
- Insert 问题。
- MYSQL 插入 外键的问题
- 怎么做事物回滚??
- Ms sql中如何把二进制的字段类型数据从A服务器传到B服务器呢?
- 我在sqlserver7.0下建了一个表,但无法保存!报错如下:
- sql2005 EncryptByPassPhrase 加密遇到问题
- 不是我懒。实在是想不出了。帮忙看看这段查询怎么写,谢谢大家了。
- UNION语句的错误
- SQL语句 where in(张三,张三,李四,张三,李四,张三)。怎么使记录集的顺序和()里的条件顺序一致。包括重复的要一样
- 急呀,我有个小问题,我有个数据库其中有个字段是由自然数组成的字符串,现在我想按照其中的数字大小来排列记录
- 请教高手DTS的问题
不好意思,是这样:
CREATE procedure test @rank int, @workcode char(5),@code char(5),@dist numeric(12,5)
as
update rim_ga
set dist=@dist, dd=@dist-fl
FROM dbo.Rim_PT INNER JOIN
dbo.Hori_PT ON dbo.Rim_PT.spworkcode = dbo.Hori_PT.WorkCode AND
dbo.Rim_PT.spcode = dbo.Hori_PT.Code INNER JOIN
dbo.Hori_PT Hori_PT_1 ON
dbo.Rim_PT.epworkcode = Hori_PT_1.WorkCode INNER JOIN
dbo.rim_ga ON dbo.Rim_PT.WorkCode = dbo.rim_ga.workcode AND
dbo.Rim_PT.Code = dbo.rim_ga.code
where rim_ga.rank=@rank and rim_ga.workcode=@workcode and rim_ga.code=@code
GO 我的意思是:
这个语句无语法错误,但是FROM多表我,要超纵的字段除FL属于HORI_PT外,其他的都是在rim_ga中的。关键的疑点:
1。这样能否取得FL的值
2。能否这样用在更新语句中用FROM来连接多表。这种结构:
UPDATE 某表
SET 某表的字段(但从其他的关联表中取值)
FROM 多表
WHRER 某表的字段
谢谢!!
1、保证一条rim_ga只取出一个FL,即你输入的连接条件保证rim_ga和HORI_PT表之间是一对一关系。最好是主键之间连接。
2、在不敢肯定条件是否符合的情况下,你可以用:
select rim_ga.*,Hori_PT_1.*
FROM dbo.Rim_PT INNER JOIN
dbo.Hori_PT ON dbo.Rim_PT.spworkcode = dbo.Hori_PT.WorkCode AND
dbo.Rim_PT.spcode = dbo.Hori_PT.Code INNER JOIN
dbo.Hori_PT Hori_PT_1 ON
dbo.Rim_PT.epworkcode = Hori_PT_1.WorkCode INNER JOIN
dbo.rim_ga ON dbo.Rim_PT.WorkCode = dbo.rim_ga.workcode AND
dbo.Rim_PT.Code = dbo.rim_ga.code
where rim_ga.rank=@rank and rim_ga.workcode=@workcode and rim_ga.code=@code
先查看你的条件是否写完全。
对于第二点:
我想说的是:
FROM 语句我是从视图中复制下来的,
本来我写了一个视图取得连接表数据,但视图不能更新数据
所以,我想能否在存储过程中将两步合起来,
在存储过程中从连接表中取得当前值来更新要更新的表的字段
视图在SQL SERVER2000是可以通过INSTEAD OF 触发器更新数据,看以下精华贴。http://www.csdn.net/expert/topic/610/610567.xml?temp=.9792139
select
from
where
是把?
update
set
from
where 可以吧?
update
set
where
set
from
where
是SQL SERVER 特有的,这样比较灵活!!