我尝试使用以下函数检查数据库中是否存在记录
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;
答案 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
条款