日期:2014-05-17  浏览次数:20541 次

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的语句,这样就能保证字段及其位置不错了。