为什么在存储过程中字符串加不起来?

stpaladin 2003-05-15 03:44:49
我有个存储过程如下

Create Procedure tCalPrice(@OSNs nvarchar(1000))
As
declare @str nvarchar(1000),@int int,@strSQL nvarchar(4000),@TID int,@JHTime int,@PayType int,@Delivery int
declare @Price money
set @tid = 1
set @JHTime = 4
Set @PayType = 1
Set @delivery = 1

set @int = 1002
set @str = N'dfdf = ' + cast(@int as nvarchar)
select @str

SEt @strSQL = N'Select @Price = Sum(*) From OrderPriceTb Where TID = ' + cast(@TID as nvarchar)
+ N' and ((Name = ''General'') OR '
+ N'(Name = ''JHTime'' and OptionNo = ' + cast(@JHTime as nvarchar) + N') OR '
+ N'(Name = ''PayType'' and OptionNo = ' + cast(@PayType as nvarchar) + N') OR '
+ N'(Name = ''Delivery'' and OptionNo = ' + cast(@Delivery as nvarchar) + N')'

select @strsQL


Go

可是发现@strSQL加不到一块,只加到PayType前为止的195个字符,为什么?
我不写在存储过程中,而是直接如下运行,就没有问题:
declare @str nvarchar(1000),@int int,@strSQL nvarchar(4000),@TID int,@JHTime int,@PayType int,@Delivery int
declare @Price money
set @tid = 1
set @JHTime = 4
Set @PayType = 1
Set @delivery = 1

set @int = 1002
set @str = N'dfdf = ' + cast(@int as nvarchar)
select @str

SEt @strSQL = N'Select @Price = Sum(*) From OrderPriceTb Where TID = ' + cast(@TID as nvarchar)
+ N' and ((Name = ''General'') OR '
+ N'(Name = ''JHTime'' and OptionNo = ' + cast(@JHTime as nvarchar) + N') OR '
+ N'(Name = ''PayType'' and OptionNo = ' + cast(@PayType as nvarchar) + N') OR '
+ N'(Name = ''Delivery'' and OptionNo = ' + cast(@Delivery as nvarchar) + N')'

select @strsQL

各位高手请指教
...全文
29 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stpaladin 2003-05-15
  • 打赏
  • 举报
回复
我已经知道了
是调试器只能显示195个字符,其实是对的
stpaladin 2003-05-15
  • 打赏
  • 举报
回复
新发现!
上面的存储过程执行没有问题
如果在select @strsQL后再加一行:
Select Price From OrderPriceTb Where TID = 1 and ((Name = 'General') OR (Name = 'JHTime' and OptionNo = 4) OR (Name = 'PayType' and OptionNo = 1) OR (Name = 'Delivery' and OptionNo = 1))

就会出现问题,请各位调试以下便知,很有意思

34,593

社区成员

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

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