一个奇怪的问题

FrameSniper 2008-10-26 02:51:21
-- 脚本文件名:udsp_InsertTradeContractQualityDetail.sql
-- 脚本操作说明:向购销合同煤质细节表添加一条记录
-- 创建人:RenYuan
-- 创建日期:2008-09-02
-- 备注:在isqlw.exe中执行此脚本前建议先关闭mmc.exe

use PYCTGMIS

go

if exists (select 1
from sysobjects
where id = object_id('udsp_InsertTradeContractQualityDetail')
and type = 'P')
drop procedure udsp_InsertTradeContractQualityDetail

go

/*----------------------------------------------------------------------------------------------------*/
/* */
/* */
/* 用户自定义存储过程udsp_InsertTradeContractQualityDetail脚本内容 */
/* */
/* */
/*----------------------------------------------------------------------------------------------------*/

create procedure udsp_InsertTradeContractQualityDetail
@TradeContractNumber nvarchar(32),
@FreightBreedName nvarchar(16),
@FreightBreedProductionArea nvarchar(16),
@FreightBreedAmount real,
@UnitPrice real,
@DWFRL real,
@HFF real,
@HLL real,
@SF real,
@HZ real
as
declare @Index smallint
declare @RecordAmount smallint
set @RecordAmount=(select count(*) from udot_TradeContractFreightQualityDetail)
if (@RecordAmount=0)
begin
set @Index=1
end
else
begin
set @Index=(select max(tcfqdf_Index) from udot_TradeContractFreightQualityDetail)+1
end
declare @TradeContractIndex smallint
set @TradeContractIndex=(select tcf_Index from udot_TradeContract where tcf_TradeContractNumber=@TradeContractNumber)
declare @FreightBreedIndex smallint
set @FreightBreedIndex=(select fbf_Index from udsdt_FreightBreed where fbf_Name=@FreightBreedName)
declare @InsertStatement nvarchar(4000)
set @InsertStatement='insert into udot_TradeContractFreightQualityDetail (tcfqdf_Index,
tcfqdf_TradeContractIndex,
tcfqdf_FreightBreedIndex,
tcfqdf_FreightBreedProductionArea,
tcfqdf_FreightBreedAmount,
tcfqdf_UnitPrice,
tcfqdf_DWFRL,
tcfqdf_HFF,
tcfqdf_HLL,
tcfqdf_SF,
tcfqdf_HZ) values ('+
convert(nvarchar(10),@Index)+','+
convert(nvarchar(10),@TradeContractIndex+','+
convert(nvarchar(10),@FreightBreedIndex+
','''+@FreightBreedProductionArea+''','+
convert(nvarchar(10),@FreightBreedAmount)+','+
convert(nvarchar(10),@UnitPrice)+','+
convert(nvarchar(10),@DWFRL)+','+
convert(nvarchar(10),@HFF)+','+
convert(nvarchar(10),@HLL)+','+
convert(nvarchar(10),@SF)+','+
convert(nvarchar(10),@HZ)+')'
-- select 1
if exists(select 1 from udot_TradeContractFreightQualityDetail where tcfqdf_TradeContractIndex=@TradeContractIndex and tcfqdf_FreightBreedIndex=@FreightBreedIndex)
raiserror('已存在同名记录',16,1)
else
execute(@InsertStatement)

go

这个存储过程,现在有一个问题,把select 1这行加上注释,存储过程F5可以正常执行
取消注释马上报告说如下错误:

服务器: 消息 156,级别 15,状态 1,过程 udsp_InsertTradeContractQualityDetail,行 60
在关键字 'select' 附近有语法错误。

搞不明白是什么问题










...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangCK 2008-10-26
  • 打赏
  • 举报
回复
接两分可以吗??
FrameSniper 2008-10-26
  • 打赏
  • 举报
回复
谢谢,结贴
wzy_love_sly 2008-10-26
  • 打赏
  • 举报
回复
create procedure udsp_InsertTradeContractQualityDetail
@TradeContractNumber nvarchar(32),
@FreightBreedName nvarchar(16),
@FreightBreedProductionArea nvarchar(16),
@FreightBreedAmount real,
@UnitPrice real,
@DWFRL real,
@HFF real,
@HLL real,
@SF real,
@HZ real
as
begin
declare @Index smallint
declare @RecordAmount smallint
set @RecordAmount=(select count(*) from udot_TradeContractFreightQualityDetail)
if (@RecordAmount=0)
begin
set @Index=1
end
else
begin
set @Index=(select max(tcfqdf_Index) from udot_TradeContractFreightQualityDetail)+1
end
declare @TradeContractIndex smallint
set @TradeContractIndex=(select tcf_Index from udot_TradeContract where tcf_TradeContractNumber=@TradeContractNumber)
declare @FreightBreedIndex smallint
set @FreightBreedIndex=(select fbf_Index from udsdt_FreightBreed where fbf_Name=@FreightBreedName)
declare @InsertStatement nvarchar(4000)
set @InsertStatement='insert into udot_TradeContractFreightQualityDetail (tcfqdf_Index,
tcfqdf_TradeContractIndex,
tcfqdf_FreightBreedIndex,
tcfqdf_FreightBreedProductionArea,
tcfqdf_FreightBreedAmount,
tcfqdf_UnitPrice,
tcfqdf_DWFRL,
tcfqdf_HFF,
tcfqdf_HLL,
tcfqdf_SF,
tcfqdf_HZ) values ('+
convert(nvarchar(10),@Index)+','+
convert(nvarchar(10),@TradeContractIndex)+','+
convert(nvarchar(10),@FreightBreedIndex)+
','''+@FreightBreedProductionArea+''','+
convert(nvarchar(10),@FreightBreedAmount)+','+
convert(nvarchar(10),@UnitPrice)+','+
convert(nvarchar(10),@DWFRL)+','+
convert(nvarchar(10),@HFF)+','+
convert(nvarchar(10),@HLL)+','+
convert(nvarchar(10),@SF)+','+
convert(nvarchar(10),@HZ)+')'
-- select 1
if exists(select 1 from udot_TradeContractFreightQualityDetail where tcfqdf_TradeContractIndex=@TradeContractIndex and tcfqdf_FreightBreedIndex=@FreightBreedIndex)
raiserror('已存在同名记录',16,1)
else
execute(@InsertStatement)
end
go
wzy_love_sly 2008-10-26
  • 打赏
  • 举报
回复
convert()好几个少了后面的)号

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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