我以前曾经用过这个网站以获得过去的各种帮助,在这种情况下,我在搜索框中找不到任何东西,所以如果在别的地方存在道歉的话。函数返回2个不同的结果 - T-SQL
在sql server 2005中,我有几个存储过程可以改变各种代码位,最近我们创建了一个函数将空格添加到已定义的字符串中。所以在理论上,我将一个字符串传递给它,并且我得到了一个结果为4的块。当我手动运行并定义实际文本时,它分裂得很好(我得到#### 0000 012返回),但是当我执行SP中的函数,我得到#### 0012 0012.有什么理由为什么?
我已经设置打印命令字符串,然后才会慢慢传递给我的功能,它打印“#### 0000012”,打印后为“#### 0012 0012”
下面是功能代码,没有声明:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[udf_addspaces](@string varchar(255),@lengthbetween int)
returns varchar(100)
as
BEGIN
declare @i int, @stringlen float, @output varchar(255), @outputofloop varchar(4)
set @stringlen = LEN(@string)/@lengthbetween
set @output =''
set @i = 0
while @i <= @stringlen
BEGIN
set @outputofloop = left(@string,@lengthbetween)
if @lengthbetween < LEN(@string)
BEGIN
set @string = right(@string,LEN(@string)[email protected])
END
set @output = @output + @outputofloop +' '
set @i = @i+1
END
return @output
END
下面是SP的执行该位:
set @Consignment2 = (@Consignment) + rtrim(@Check14)
print @Consignment2
set @Consignment2 = dbo.udf_addspaces(@Consignment2,4)
print @Consignment2
下面是它打印的行:(注:####取代了4数字号码,删除为se安全的原因)
####0000012
#### 0012 0012
问候, 路中号
请包括函数头为好。更好的办法是包含足够的代码和数据,以便我们重现您所看到的内容。 – RBarryYoung
您缺少大量信息 - 函数头,给定示例的输入和SP代码。 –
我添加了更多的位和功能的其余部分,即时通讯有点新,所以不知道需要多少。我不能把整个SP放在这里,出于安全原因 –