Dus*_*usk 4 sql sql-server sql-server-2005 function
我在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
Run Code Online (Sandbox Code Playgroud)
请注意,您没有指定函数参数数据类型的长度.因此,在这种情况下,默认情况下它变为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
Run Code Online (Sandbox Code Playgroud)
另请参阅这篇文章 http://beyondrelational.com/blogs/madhivanan/archive/2007/12/04/column-length-and-data-length.aspx