注册 登录
编程论坛 SQL Server论坛

sql语句错误代码分析

牧人 发布于 2009-07-30 12:27, 1413 次点击
CREATE PROCEDURE WEB2_EDITACCINFO
@MEMB_ID NVARCHAR(10),
@MEMB_PWD NVARCHAR(10),
@MEMB_NAME NVARCHAR(10),
@ADDR_INFO NVARCHAR(50),
@MAIL_ADDR NVARCHAR(50),
@FPAS_QUES NVARCHAR(50),
@FPAS_ANSW NVARCHAR(50),
@MONEY INT,@QX CHAR(1),
@CKPWD SMALLINT,
@JF INT,
@QXEndTime Date TIME
AS
declare @SNO_NUMB varchar(15)
if(len(@ADDR_INFO) >=4)
begin
   set @SNO_NUMB=`A00000` + right(@ADDR_INFO,4)
end
else
begin
           set @SNO_NUMB=`A00000`
end

DECLARE @GUAUTOID BIGINT
UPDATE MEMB_INFO SET[email=QXENDTime=@QXEndTime,JF=@JF,MEMB_PWD=@MEMB_PWD,MEMB_NAME=@MEMB_NAME,PHON_NUMB=@ADDR_INFO,S]QXENDTime=@QXEndTime,JF=@JF,MEMB_PWD=@MEMB_PWD,MEMB_NAME=@MEMB_NAME,PHON_NUMB=@ADDR_INFO,S[/email][email=NO_NUMB=@SNO_NUMB,ADDR_DETA=@ADDR_INFO,MAIL_ADDR=@MAIL_ADDR,FPAS_QUES=@FPAS_QUES,FPAS_ANS]NO_NUMB=@SNO_NUMB,ADDR_DETA=@ADDR_INFO,MAIL_ADDR=@MAIL_ADDR,FPAS_QUES=@FPAS_QUES,FPAS_ANS[/email]
[email=W=@FPAS_ANSW,QX=@QX]W=@FPAS_ANSW,QX=@QX[/email] WHERE [email=MEMB_ID=@MEMB_ID]MEMB_ID=@MEMB_ID[/email]
UPDATE VI_CURR_INFO SET [email=SNO_NUMB=@ADDR_INFO]SNO_NUMB=@ADDR_INFO[/email] WHERE [email=MEMB_ID=@MEMB_ID]MEMB_ID=@MEMB_ID[/email]UPDATE WAREHOUSE SET [email=MONEY=@MONEY,PW=@CKPWD]MONEY=@MONEY,PW=@CKPWD[/email] WHERE [email=ACCOUNTID=@MEMB_ID]ACCOUNTID=@MEMB_ID[/email]
SELECT `ROWCOUNT`=1
7 回复
#2
牧人2009-07-30 12:27
高手帮帮忙  很急在线等
#3
happynight2009-07-30 13:57
首先 从语法上来说 就有如下错误:
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 12
第 12 行: 'TIME' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 17
第 17 行: '`' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 21
第 21 行: '`' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 25
第 25 行: 'QXENDTime' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 27
第 27 行: 'SNO_NUMB' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 27
第 27 行: 'MONEY' 附近有语法错误。
#4
happynight2009-07-30 14:06
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 12
第 12 行: 'TIME' 附近有语法错误。

@QXEndTime Date TIME   应该改成: @QXEndTime DateTIME
----------------------------------------------------------
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 17
第 17 行: '`' 附近有语法错误。
`A00000` 应该改成: 'A00000'
----------------------------------------------------------
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 21
第 21 行: '`' 附近有语法错误。
`A00000` 应该改成: 'A00000'
----------------------------------------------------------
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 25
第 25 行: 'QXENDTime' 附近有语法错误
SET[email=QXENDTime=@QXEndTime 这一句有问题
----------------------------------------------------------
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 27
第 27 行: 'SNO_NUMB' 附近有语法错误。
SET [email=SNO_NUMB=@ADDR_INFO]SNO_NUMB=@ADDR_INFO[/email]
这一句有问题
----------------------------------------------------------
服务器: 消息 170,级别 15,状态 1,过程 WEB2_EDITACCINFO,行 27
第 27 行: 'MONEY' 附近有语法错误。
UPDATE WAREHOUSE SET [email=MONEY=@MONEY,PW=@CKPWD]MONEY=@MONEY
这一句有问题  和上一句连在一起了 另外保留字Money没有加中括号
更新的字段之间没有加逗号
----------------------------------------------------------
很好奇 看你的SQL语句 是不是用什么工具生成的还是自己写的代码生成的
如果是自己写的代码的话 能不能发上来看看
#5
牧人2009-07-30 14:07
等答案中、、、、、
#6
牧人2009-07-30 14:10
回复 4楼 happynight
谢谢啊   有时间可以交流一下

至于你的要求  真的不好意思

这是商业机密,望体谅!
#7
happynight2009-07-30 14:16
以下是引用牧人在2009-7-30 14:10的发言:

谢谢啊   有时间可以交流一下

至于你的要求  真的不好意思

这是商业机密,望体谅!

呵呵 不知道我的回答有无帮助
看了你的SQL语句 感觉不是一般般的错误
估计是工具生成的
我自己最近也在想写一个多数据库的SQL处理层 想把对数据库的操作封装下
呵呵 有空交流下 大家交流下设计思路就可以了
#8
jinwushe2009-07-30 14:20
看样子LZ有好多问题还是很简单的
1