当函数定义如下时,它将返回正确的行。
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。
任何人都知道这是为什么?
由于
答案 0 :(得分:2)
根据您的参数名称(@GUID)进行猜测,但GUID实际上并非“数字”,请参阅uniqueidentifier (Transact-SQL)。 16字节的GUID值无法正确映射到数字(16,0)。
为什么不将@GUID参数定义为uniqueidentifier
数据类型?