我是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。有什么建议吗?
答案 0 :(得分:0)
您应该在脚本中将变量@par声明为varchar,并且尝试将此变量设置为varchar数据类型的当前int。
e.g。
declare @par varchar(50)
而不是
declare @par int