我在 sql server 2005 中创建了一个用户定义的标量函数,我希望它根据传递的参数名称返回我的 id。但是下面的函数总是返回 null,即使传递的名称已经存在于表中。谁能告诉我原因吗?
create function IsNameExist(@Name varchar)
returns int
As
Begin
Declare @Id int
Select @Id = ProductId from [Product] where ProductName = @Name
return @Id
End
最佳答案
请注意,您没有指定函数参数数据类型的长度。因此,在这种情况下,默认情况下它会变为 1,并且函数内的查询会失败。试试这个,看看
create function
IsNameExist(@Name varchar(100))
returns int As
Begin
Declare @Id int
Select @Id = ProductId from [Product] where ProductName = @Name
return @Id
End
另请参阅这篇文章 http://beyondrelational.com/blogs/madhivanan/archive/2007/12/04/column-length-and-data-length.aspx
关于sql - 用户定义的函数在sql server中返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6815184/