如何在 sql 服务器中将数据类型 varchar 转换为 int?

How to convert data type varchar to int in sql server?

我是 SQL 服务器的新手,我想通过传递参数在 SQL 服务器中编写代码,但显示此错误:

Msg 245, Level 16, State 1, Procedure NewOderNo, Line 12
Conversion failed when converting the varchar value 'ORD1503200001' to data type int.

这是我的代码:

ALTER  PROCEDURE [dbo].[NewOderNo]
@custid varchar(50)
AS
declare @cid int
declare @par int

BEGIN
--CONVERT(varchar,ISNULL(@cid,0))
set @par= (select substring(ord_no,8,1) from tbl_OrderMaster)
print @par
        select @cid=id from tbl_Supplier where id= @custid;
        SELECT 'ORD'+convert(varchar,(YEAR( GETDATE() ) % 100))+ CONVERT(varchar(2), getdate(), 101) +CONVERT(varchar,ISNULL(@cid,0)) + RIGHT('00000' + convert(varchar,(ISNULL(MAX(ord_no),0)+1)),5) as order_no from tbl_OrderMaster where @par = @custid;

END


--exec NewOderNo '2'

table 列 ord_no 的类型是 varchar。有什么建议吗?

您应该像在脚本中一样将变量@par 声明为 varchar,您正在尝试将当前为 int 的变量设置为 varchar 数据类型。

例如

declare @par varchar(50)

而不是

declare @par int