2012-02-26 10 views
1

これまでにこれまでに答えられていると確信していますが、答えを見つけるための正しい命名法が見つかりません。SQL Server 2008でXMLと共に定数/変数を挿入する

基本的に、私は2列、データ型int今

の両方で非常に単純なテーブルを持って、私はそうXMLを通じて提供されているいずれかの列を持つテーブルにn個のレコードを挿入しようとしています:定数値@ProcedureIDとともに

<Data> 
    <DepartmentID>{x}</DepartmentID> 
</Data> 

は、ストアドプロシージャに変数として渡されています。

私は次のことをやろうとしている:

EXEC sp_xml_preparedocument @Handle OUTPUT, @Tags 

INSERT INTO Accounting.DepartmentProcedure 
(ProcedureID,DepartmentID) 
SELECT @ProcedureID,DepartmentID 
FROM OPENXML(@Handle,'/Data/DepartmentID',2) WITH (DepartmentID int) 

上記は罰金解析し、それを実行すると、私に次のエラーを与える:

Msg 515, Level 16, State 2, Line 7
Cannot insert the value NULL into column 'DepartmentID', table 'RCH.Accounting.DepartmentProcedure'; column does not allow nulls. INSERT fails.

私の人生のために、私は」することができますこの問題に対処する方法を理解していない。

DECLARE @input XML = '<Data> 
    <DepartmentID>{x}</DepartmentID> 
</Data>' 

INSERT INTO 
    dbo.Accounting.DepartmentProcedure(ProcedureID, DepartmentID) 

    SELECT 
     @ProcedureID, 
     @input.value('(/Data/DepartmentID)[1]', 'int') 

これはDepartmentID列にXMLから抽出された<DepartmentID>の値を挿入します。私は、SQL ServerでのXQuery組み込み機能を使用することになり、事前

答えて

1
+0

賞賛の男を読むためにここに行く、あなたがのためにすべての参照を提案できるのXQuery機能が組み込まれて? –

+0

@MustafaIsmailMustafa:答えには2つのリンクがあります。これらは良い出発点です。それ以外の場合:MSDN上で「XQuery」を検索します。 –

関連する問題