在此图中,我创建了一个存储过程。当我搜索类似1000的发票编号时,查询将运行,但是当我搜索客户名称时,错误提示无法将varchar
转换为int
错误显示在图片中。
也请向我展示完整的代码解决方案,而不是该解决方案的其他链接
您的exec spGetRecord 'Tony Hawks'
语句正在将名称传递到存储过程的第一个参数中。这等效于编写exec spGetRecord @InvoiceNum = 'Tony Hawks'
,因此SQL Server抱怨它无法将“ Tony Hawks”强制转换为int。
您可以指定参数:exec spGetRecord @Name = 'Tony Hawks'
(或执行@John Wu在注释中建议的操作,以使名称成为第二个位置参数)。