2016-04-28 14 views

答えて

3

あなたはこのarticleを参照することができます。その後、(N)VARCHARデータ型パラメータへのパラメータとして文字列のリスト、分割/ SPの内側にそれを解析: - CSVを渡す

方法#1:あなたはそれを達成することが可能な5つの方法があります。 またはUDF、check here

方法2 - XMLデータ型パラメータとしてXML:stringを渡す。 SP内部のXMLを解析する必要があります。check here

方法3 - テンポラリテーブルを使用する:実行の直前に作成されたSPの内部。ここでは、 パラメータをSPに含める必要はありません。check here

方法#4 - TVPsの使用:SQL Server 2008のでは、あなたの上TVPsまたはテーブル値パラメータを作成し、 、ユーザー定義テーブル型を使用して、それらを宣言することができます。これらのTVPを使用して、 行のデータをSPまたはUDFに複数回送信することができます。ただし、テンポラリテーブルまたは複数の パラメータcheck hereを作成する必要はありません。

メソッド#5 - JSON文字列を渡す:NVARCHARデータ型パラメータとして渡します。 SP内のJSONを解析する必要があります。check here例えば

linked sourceからの方法1の例:

-- As always I will use the AdventureWorks database<img width="16" height="16" class="wp-smiley emoji" draggable="false" alt=":)" src="https://s1.wp.com/wp-content/mu-plugins/wpcom-smileys/simple-smile.svg" style="height: 1em; max-height: 1em;"> 
USE [AdventureWorks2012] 
GO 

-- Create an SP with NVARCHAR(MAX) parameter: 
CREATE PROCEDURE uspGetPersonDetailsCSV (
    @persons NVARCHAR(MAX) 
) 
AS 
BEGIN 
    --DECLARE @persons NVARCHAR(MAX) 
    --SET @persons = 'Charles,Jade,Jim,Luke,Ken' 

    SELECT T.C.value('.', 'NVARCHAR(100)') AS [Name] 
    INTO #tblPersons 
    FROM (SELECT CAST ('<Name>' + REPLACE(@persons, ',', '</Name><Name>') + '</Name>' AS XML) AS [Names]) AS A 
    CROSS APPLY Names.nodes('/Name') as T(C) 

    SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, ModifiedDate 
    FROM [Person].[Person] PER 
    WHERE EXISTS (SELECT Name FROM #tblPersons tmp WHERE tmp.Name = PER.FirstName) 
    ORDER BY FirstName, LastName 

    DROP TABLE #tblPersons 
END 
GO 

-- No execute this SP by passing a list of values comma separated as a single string: 
EXEC uspGetPersonDetailsCSV 'Charles,Jade,Jim,Luke,Ken' 
GO 
-- Check the output, objective achieved<img width="16" height="16" class="wp-smiley emoji" draggable="false" alt=":)" src="https://s1.wp.com/wp-content/mu-plugins/wpcom-smileys/simple-smile.svg" style="height: 1em; max-height: 1em;"> 

-- Final Cleanup 
DROP PROCEDURE uspGetPersonDetailsCSV 
GO 
関連する問題