SQL使用count,error"无法将*转换为int"

时间:2016-01-15 00:45:48

标签: 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行的错误。无法转换为int。"

这发生在哪里?如何解决?

  

Msg 245,Level 16,State 1,Procedure verClientUniq,Line 8
  转换varchar值时转换失败' *'数据类型int。

我以这种方式调用函数:

exec @isUnique = verClientUniq @cid;

1 个答案:

答案 0 :(得分:1)

clientId int类型为@cid时,varchar(2)int SQL Server尝试将WHERE转换为 TABLE: ARTIST JMBG NAME AGE ADRESA -------------------------------------- J1 Ladygaga 35 HOLIVUDHILZ J2 DUSKO 13 BB J3 EMINEM 40 REVOLUCIJA 5 J4 BAGI 22 KURAC J5 MARKO 33 ULICA TABLE:HALL DID CAPACITY CITY --------------------------------- D1 500 PODGORICA D2 300 NIS D3 1000 BAR D4 2000 NEWYORK D5 750 BEOGRAD TABLE: CITY ----------------------------------------- BAR montenegro 5000 BEOGRAD Serbia 2000000 BUDVA montenegro 50000 NEWYORK AMERICA 7000000 NIS Serbia 1000000 PODGORICA montenegro 250000 TABLE: CONCERT ID JMBG HALL ------------------------ K1 J3 D4 K2 J4 D1 K3 J1 D1 K4 J1 D5 K5 J1 D1 K6 J3 D1 K7 J5 D1 条款