为什么在存储过程中字符串加不起来?
我有个存储过程如下
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
各位高手请指教