2017-06-05 37 views
0

我試圖使用存儲過程插入/更新SQL Server數據庫中的表。我創建了一個存儲過程和表型像下面也表結構是使用存儲的程序插入/更新SQL Server數據庫的問題

CREATE TYPE Dept_TT AS TABLE 
(
dept_name varchar(64), 
jax_dept_id char(32) 
) 
GO 

ALTER PROCEDURE [dbo].[uspInsertorUpdateDep] 
@dt_TT AS afm.Dept_TT READONLY 
AS 
BEGIN 
SET NOCOUNT ON; 

BEGIN TRANSACTION; 

UPDATE dep 
SET dep.dept_name     = t.dept_name, 
    dep.jax_dept_id    = t.jax_dept_id 

FROM [afm].[jax_dept] dep 
INNER JOIN @dt_TT t ON dep.jax_dept_id = t.jax_dept_id 

INSERT INTO [afm].[jax_dept](dept_name, jax_dept_id) 
SELECT t.dept_name, t.jax_dept_id 
FROM @dt_TT t 
WHERE NOT EXISTS (SELECT 1 
       FROM [afm].[jax_dept] 
       WHERE jax_dept_id = t.jax_dept_id) 
COMMIT TRANSACTION; 

END; 

當我在SQL Server Management Studio中它插入執行存儲produre /更新記錄的預期。我這消費中的StoredProcedure BizTalk應用程序,並嘗試運行它拋出錯誤的應用程序一樣

適配器無法傳輸郵件將發送端口「WcfSendPort_SqlAdapterBinding_Procedures_dbo_Custom_Dep」與URL「MSSQL://」。它將在爲此發送端口指定的重試間隔後重新發送。詳細信息:「Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException:。意外的方法,有人呼籲確保XML是結構良好的方法調用的堆棧跟蹤是:虛空WriteFullEndElement()

下面。地圖和配器

我啓用了跟蹤,並試圖看到發送到發送端口的XML,它看起來不錯以下。

<ns0:uspInsertorUpdateDep xmlns:ns0="http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo" xmlns:ns3="http://schemas.microsoft.com/Sql/2008/05/Types/TableTypes/afm" xmlns:ns4="http://schemas.datacontract.org/2004/07/System.Data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<ns0:dt_TT> 

<ns3:Dept_TT> 

<ns3:dept_name>XYZ</ns3:dept_name><ns3:jax_dept_id>RS</ns3:jax_dept_id></ns3:Dept_TT></ns0:dt_TT></ns0:uspInsertorUpdateDep> 

不知道我缺少什麼有這兒過得其他應用程序使用表類型和存儲過程執行相同的操作完全正常工作。任何幫助是極大的讚賞。或者建議任何其他方法來插入/更新SQL服務器數據庫

回答

0

您是在綁定中還是在業務流程中顯式地將適配器的操作設置爲手動還是將其添加到上下文中?

+0

嘿。你應該考慮添加你的答案作爲評論,因爲它並不真正回答這個問題:) –

+1

是的,新用戶,我沒有看到我可以評論他的答案 – user8141306

相關問題