如何在 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
我是 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