Sql server SQL使用计数,错误“0”;无法将*转换为int";

Sql server SQL使用计数,错误“0”;无法将*转换为int";,sql-server,Sql Server,我试图使用以下函数检查数据库中是否存在记录 alter function [dbo].[verClientUniq](@cid varchar(2)) returns int begin declare @nr int select @nr = count(*) from Clients where clientId = @cid; return @nr end 当我在我的过程中执行它时,我在过程“varchar'*'的第8行得到一个错误,无法转换

我试图使用以下函数检查数据库中是否存在记录

alter function [dbo].[verClientUniq](@cid varchar(2))
returns int
begin
    declare @nr int

    select @nr = count(*) 
    from Clients
    where clientId = @cid;

    return @nr
end
当我在我的过程中执行它时,我在过程“varchar'*'的第8行得到一个错误,无法转换为int。”

这在哪里发生?如何修复它

Msg 245,16级,状态1,程序verClientUniq,第8行
将varchar值“*”转换为数据类型int时,转换失败

我这样调用函数:

exec @isUnique = verClientUniq @cid;

当您将
@cid
作为
varchar(2)
传递时,您的
clientId
类型为
int
,SQL Server试图将其转换为
WHERE
子句中的
int

我假设它是SQL Server代码,并且在语法上是有效的。什么是确切的错误消息?我已经在那里写了确切的错误消息。当将varchar值“*”转换为数据类型int时,转换失败。您的函数至少缺少一个
AS
,但是您能说明如何在存储过程中调用此函数吗?(另外,在哈姆雷特提问后编辑问题之前,您没有写出确切的错误消息。)exec@isUnique=verClientUniq@cid;isUnique是一个intI抱歉,我想如果我用我自己的话写的话也是一样的。我的坏朋友,编辑。