sql - 用户定义的函数在sql server中返回null

标签 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

最佳答案

请注意,您没有指定函数参数数据类型的长度。因此,在这种情况下,默认情况下它会变为 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/

相关文章:

sql - 自动创建统计数据

php - foreach 数组是更改网页上 sql 列名称的最佳选择吗?

sql - 求每个科目名称的学生的最高分

mysql - 当我指定选择前 10 行时,有什么方法可以阻止 MySQL 读取整个表吗?

sql-server - 获取所有非聚集索引

c# - SQL Server 连接字符串异步处理=true

sql-server - 有没有办法在 SQL Server 2005 中设置小数计算的默认精度?

sql - 存储过程存在和不存在

java - 在数据库中保留动态数据以供工作流执行

php - SQLSRV for PHP for MSSQL 的配置问题