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

时间:2015-03-04 12:53:55

标签: sql-server database stored-procedures

我是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'

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

1 个答案:

答案 0 :(得分:0)

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

e.g。

declare @par varchar(50)

而不是

declare @par int