我以前曾經用過這個網站以獲得過去的各種幫助,在這種情況下,我在搜索框中找不到任何東西,所以如果在別的地方存在道歉的話。函數返回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放在這裏,出於安全原因 –