2010-05-26 72 views
2

當函數被這樣定義時,它將返回正確的行。當數據類型正確時,爲什麼此函數返回0行?

ALTER FUNCTION [dbo].[exampleFunction](
@GUID VARCHAR(20)--NUMERIC(16,0) 
,@BrowseName VARCHAR(200) 
) 

但是,當我使用數字(16,0),這是正在傳遞的數據正確的數據類型,我收到0行。

ALTER FUNCTION [dbo].[exampleFunction](
@GUID NUMERIC(16,0) 
,@BrowseName VARCHAR(200) 
) 

函數返回一個BIT。基本上,函數找到GUID然後比較BrowseTreeName。

任何人都知道這是爲什麼?

感謝

根據您的參數名稱(@GUID)
+4

您需要向我們提供更多的代碼。另外,如果它是一個GUID,爲什麼不使用'uniqueidentifier'? – 2010-05-26 14:14:01

+1

我們需要什麼來幫助:表格定義;樣本數據;查詢代碼;預期結果;實際結果。請注意,在生產該批次的過程中,您很可能會自己弄清楚自己有什麼問題...... – AakashM 2010-05-26 14:17:44

+0

您是否將數值增加到了20? – 2010-05-26 14:18:52

回答

2

只是一種猜測,但GUID實際上不是「數字」,見uniqueidentifier (Transact-SQL)。一個16字節的GUID值不能正確映射到數字(16,0)。

爲什麼不直接將@GUID參數定義爲uniqueidentifier數據類型?

+0

這改正了這個問題。謝謝! – Ryan 2010-05-26 14:49:51

相關問題