首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

exec 时出错了,求鉴定!该怎么解决

2014-01-12 
exec 时出错了,求鉴定!本帖最后由 dayrenlar 于 2014-01-10 11:10:49 编辑alter proc[dbo].[Order_set](@O

exec 时出错了,求鉴定!
本帖最后由 dayrenlar 于 2014-01-10 11:10:49 编辑


alter proc[dbo].[Order_set]

@Op_en int=null,
@TotalFee decimal (18,2)=null,
@DiscountFee decimal(18,2)=null,
@AdjustFee decimal (18,2)=null,
@Payment decimal (18,2)=null,
@ModifiedTime datetime =null,
@OrderStatus varchar(50)=null,
@RefundID varchar(50)=null,
@RefundStatus varchar(30)=null,
@TradeType varchar(20)=null,
@SkuID varchar(50)=null,
@Number int=null,
@ProductModel varchar(500)=null,
@Price decimal (18,2)=null,
@TID varchar(50)=null,
@OrderID varchar(50) =null,
@ProductID  varchar(50) =null,
@CategoryID varchar(50)=null,
@TimeOutAction datetime=null,
@BuyerRate bit=null,
@SellarRate bit=null,
@BuyerPointFee int =null,
@ObjectItems varchar(2000)=null

AS
if(@op_en=0)
begin
declare @sql varchar(2000)
set @sql =
'insert into Order_Basicinfo values('''+convert(varchar(30),@TotalFee)+''','''+convert(varchar(30),@DiscountFee)+''','''+convert(varchar(30),@AdjustFee)+''','''+convert(varchar(30),@Payment)+''','''+convert(varchar(30),@ModifiedTime)+''','''+@OrderStatus+''','''+@RefundID+''','''
+@RefundStatus+''','''+@SkuID+''','''+convert(varchar(9),@Number)+''','''+@ProductModel+''','''+convert(varchar(30),@Price)+''','''+@TID+''','''+@OrderID+''','''+@ProductID+''','''+@CategoryID+''','''
+cast(@TimeOutAction as varchar)+'''
,'''+convert(varchar(1),@BuyerRate)+''','''+convert(varchar(1),@SellarRate)+''','''+convert(varchar(9),@BuyerPointFee)+''','''+@TradeType+''')';
exec (@sql)
end

==========================================================================
消息 8114,级别 16,状态 5,过程 Order_set,第 75 行
从数据类型 varchar 转换为 numeric 时出错。
哪儿 的问题啊,看了半天了
[解决办法]
给个参数看看
[解决办法]
听哥的

永远不要 insert into Order_Basicinfo values(值....)
写insert into Order_Basicinfo(字段....) values(值....)
[解决办法]
建议以后你要得到插入一个表的语句的时候直接在这个表上点右键,然后用生成脚本,自动生成insert的语句,这样就能保证字段及其位置不错了。

热点排行