USE [xlmis]
GO
/****** Object: StoredProcedure [dbo].[Pb_SendBillToInvoice] Script Date: 09/20/2014 05:06:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Pb_SendBillToInvoice] @BillClient int,@IDString nvarchar(1000)='',@UserID int,@UserName nvarchar(50)
as
declare @sql nvarchar(max)='',@invoiceid int
--处理数据源
select item_id itemid,* into #Temp from Tb_BillItem where 1=0
alter table #Temp drop column item_id
select @sql= N'insert into #Temp select * from xlmis.dbo.Tb_BillItem where item_id in ('+@IDString+')'
exec sp_executesql @sql
alter table #Temp add invoice_id int
--插入主表
insert into XLData.dbo.htxx_invoice_input(client_id,customer_name,invoice_flag,extract_flag,freight_charge,batch_code,creator_id,creator_name)
select @BillClient,customer_name,(case when (select invoice_money from #Temp)>0 then 0 else 4 end),(select top 1 machine_number from #Temp),isnull((select SUM(freight_cost) from #Temp),0),(select top 1 batch_code from #Temp),@UserID,@UserName from Tb_ClientInfo where client_id=@BillClient
select @invoiceid=IDENT_CURRENT('XLData.dbo.htxx_invoice_input')
--更新从表数据源
update #Temp set invoice_id=@invoiceid
--插入从表
insert into XLData.dbo.htxx_invoice_input_item(item_id,invoice_id,[type_id],[type_name],item_name,item_price,tax_rate,tax_money,item_amount,item_money,free_amount,item_stand)
select itemid,invoice_id,[type_id],[type_name],product_type,invoice_price,tax_rate,tax_money,invoice_amount,invoice_money,free_amount,product_model from #Temp
select @sql= N'update Tb_BillItem set invoice_status=1 where item_id in ('+@IDString+')'
exec sp_executesql @sql
truncate table #Temp
drop table #Temp
搞不懂什么原因,之前还可以的。