Udostępnij za pośrednictwem


Praca z parametrów i zwracanych kodów w wykonywanie zadań SQL

Instrukcji SQL i procedury przechowywane często używają input Parametry, output , parametrów i zwracanych kodów.W Integration Services, obsługuje zadanie wykonanie instrukcji SQL Input, Output, i ReturnValue typy parametrów.Możesz użyć Input typu parametrów wejściowych, Output dla parametrów wyjściowych i ReturnValue dla zwracają kodów.

Ostrzeżenie

Parametry zadania wykonanie instrukcji SQL można używać tylko wtedy, gdy dostawca danych je obsługuje.

Parametry poleceń SQL, w tym kwerendy i procedury przechowywane są mapowane na zmienne zdefiniowane przez użytkownika utworzone w ramach zakres zadanie wykonanie instrukcji SQL kontener nadrzędnego lub w zakres pakiet.Projekt zestaw wartości zmiennych czas lub wypełniane dynamicznie przy uruchomieniu czas.Parametry można również mapować do zmiennych systemowych.Aby uzyskać więcej informacji, zobacz Integracja usług zmiennych i Zmienne systemowe.

Praca z parametrów i zwracanych kodów w wykonanie instrukcji SQL zadania jest jednak więcej niż obsługuje wystarczy znajomość parametr, jakie typy zadania i jak mapowane tych parametrów.Istnieją dodatkowe obciążenie wymagania i wskazówki pomyślnie parametrów i zwracają kodów w zadanie wykonanie instrukcji SQL.Pozostała w tym temacie omówiono te wymagania dotyczące użycia i wytyczne:

  • Za pomocą nazw parametrów i znaczniki

  • Przy użyciu parametrów z datą i czas typów danych

  • Używanie parametrów w klauzulach WHERE

  • Procedury przechowywane przy użyciu parametrów

  • Pobieranie wartości zwracanych kodów

  • Konfigurowanie parametrów i zwracanych kodów w wykonywanie zadań edytora języka SQL

Za pomocą parametru nazwy i znaczniki

W zależności od typu połączenia, który używa zadanie wykonanie instrukcji SQL Składnia polecenia SQL używa innego parametru.Na przykład ADO.NET typu Menedżer połączeń wymaga polecenia SQL korzysta z znacznik parametru w formacie @ varParameter, typ połączenia OLE DB wymaga znacznik parametru znak zapytania (?).

Nazwy, których można użyć jako nazwy parametrów mapowania między zmiennych i parametrów różnią się także przez typ menedżer połączeń.Na przykład ADO.NET Typ menedżer połączeń jest używana nazwa użytkownika z @ prefiks, typ Menedżera połączenia OLE DB wymaga używania liczbą porządkową opartych na 0 jako nazwę parametru.

Poniższa tabela zawiera wymagania dla polecenia SQL dla typów menedżer połączeń, można użyć zadania wykonanie instrukcji SQL.

Typ połączenia

Znacznik parametru

Nazwa parametru

Przykład polecenia SQL

ADO

?

Parametr1, parametr2 …

SELECT Person.Person FROM tytuł FirstName, LastName, gdzie BusinessEntityID =?

ADO.NET

@<Nazwa parametru>

@<Nazwa parametru>

SELECT FirstName, LastName, tytuł Z Person.Person gdzie BusinessEntityID = @ parmBusinessEntityID

ODBC

?

1, 2, 3, …

SELECT Person.Person FROM tytuł FirstName, LastName, gdzie BusinessEntityID =?

Program EXCEL i OLE DB

?

0, 1, 2, 3, …

SELECT Person.Person FROM tytuł FirstName, LastName, gdzie BusinessEntityID =?

Przy użyciu parametrów z ADO.NET i menedżerowie połączenia ADO

ADO.NET i menedżerowie połączenia ADO mają szczególne wymagania dotyczące poleceń SQL, które używają parametrów:

  • ADO.NET Menedżerowie połączenia wymagają, że polecenia SQL użyć nazwy parametrów jako parametru.Oznacza to, że zmienne mogą być mapowane bezpośrednio do parametrów.Na przykład zmienna @varName jest mapowany na parametr o nazwie @parName i udostępnia wartość parametru @parName.

  • Menedżerowie połączenia ADO wymagają, że znaki zapytania (?) za pomocą polecenia SQL jako parametru.Można jednak użyć dowolną nazwę użytkownika, z wyjątkiem dla wartości całkowitych jako nazw parametrów.

Aby podać wartości parametrów, zmienne są mapowane do nazwy parametrów.Następnie zadanie wykonanie instrukcji SQL używa wartości porządkowej parametr Nazwa listy parametrów załadować wartości z zmiennych parametrów.

Korzystanie z programu EXCEL, ODBC i OLE DB połączenia menedżerów parametrów

Menedżerowie połączenia programu EXCEL i ODBC, OLE DB wymagają, aby polecenie SQL używały znaki zapytania (?) jako parametru i wartości liczbowe 0 lub 1 jako nazw parametrów.Jeśli zadanie wykonanie instrukcji SQL używa menedżer połączeń ODBC, nazwy parametru, który mapuje pierwszego parametru kwerendy o nazwie 1; w przeciwnym razie parametr o nazwie 0.Dla kolejnych parametrów wartość numeryczna nazwa parametru wskazuje parametr w poleceniu SQL, który mapuje nazwy parametru.Na przykład parametr o nazwie 3 mapy trzeci parametr jest reprezentowany przez trzeci znak zapytania (?) w polecenia SQL.

Aby podać wartości parametrów, zmienne są mapowane do nazwy parametrów i zadanie wykonanie instrukcji SQL używa wartości porządkowej nazwę parametru załadować wartości z zmiennych parametrów.

W zależności od dostawca, który używa menedżer połączeń niektóre typy danych OLE DB mogą nie być obsługiwane.Na przykład sterownik program Excel rozpoznaje tylko ograniczony zestaw typów danych.Aby uzyskać więcej informacji o zachowaniu dostawca Jet przy użyciu sterownika programu Excel, zobacz Źródła programu Excel.

Przy użyciu parametrów z menedżerami połączenie DB OLE

Gdy zadanie wykonanie instrukcji SQL używa menedżer połączeń OLE DB, BypassPrepare Właściwość zadania jest dostępna.Należy zestaw tej właściwości, aby true Jeśli zadanie wykonanie instrukcji SQL używa instrukcji SQL z parametrów.

Korzystając z menedżer połączeń OLE DB, nie można użyć podkwerendy sparametryzowana, ponieważ wykonywanie zadań SQL nie może pochodzić parametr informacji za pośrednictwem dostawca OLE DB.Jednak użyć wyrażenie, aby połączyć wartości parametru ciąg kwerendy i do zestaw SqlStatementSource właściwości zadania.

Używanie parametrów w Data i godzina typów danych

Przy użyciu daty i czasu Parametry ADO.NET i menedżerowie połączenia ADO

Podczas odczytywania danych z SQL Server typów, time i datetimeoffset, zadanie wykonanie instrukcji SQL, który używa albo ADO.NET lub ADO, Menedżer połączeń ma następujące dodatkowe wymagania:

  • Dla time danych, ADO.NET Menedżer połączeń wymaga dane przechowywane w parametrze, którego typ parametru jest Input lub Output, której typem danych jest string.

  • Dla datetimeoffset danych, ADO.NET Menedżer połączeń wymaga te dane mają być przechowywane w jednym z następujących parametrów:

    • Parametr, którego typ parametru jest Input i której typem danych jest string.

    • Parametr, którego typ parametru jest Output lub ReturnValue, której typem danych jest datetimeoffset, string, lub datetime2.W przypadku wybrania parametru, której typem danych jest albo string lub datetime2, Integration Services konwertuje dane ciąg lub datetime2.

  • ADO Menedżer połączeń wymaga albo time lub datetimeoffset dane przechowywane w parametrze, którego typ parametru jest Input lub Output, której typem danych jest adVarWchar.

Więcej informacji o SQL Server typów danych i sposób mapowania do Integration Services typów danych, zobacz Typy danych (Transact-SQL) i Typy danych usług integracji.

Data i godzina parametrów przy użyciu OLE DB połączenia menedżerów

Korzystając z menedżer połączeń OLE DB, zadanie wykonanie instrukcji SQL ma wymagania dotyczące określonego magazynu danych z SQL Server typy danych, date, time, datetime, datetime2, i datetimeoffset.Dane te muszą być przechowywane w jednym z następujących typów parametru:

  • Parametr wejściowy NVARCHAR typu danych.

  • Parametru wyjściowego z odpowiedni typ danych, jak wymieniono w poniższej tabela.

    Output Typ parametru

    Typ danych Data

    DBDATE

    date

    DBTIME2

    time

    ODCISK CZASOWY

    datetime, datetime2

    DBTIMESTAMPOFFSET

    datetimeoffset

Jeśli dane nie są przechowywane w odpowiednich danych wejściowych lub parametr wyjściowy, pakiet nie powiedzie się.

Data i godzina parametrów przy użyciu menedżerów połączenia ODBC

Podczas korzystania z menedżer połączeń ODBC zadanie wykonanie instrukcji SQL ma wymagania dotyczące określonego magazynu danych z jednym z SQL Server typy danych, date, time, datetime, datetime2, lub datetimeoffset.Dane te muszą być przechowywane w jednym z następujących typów parametru:

  • input Parametr typu danych SQL_WVARCHAR

  • output Wpisz parametr odpowiednimi danymi, jak wymieniono w poniższej tabela.

    Output Typ parametru

    Typ danych Data

    SQL_DATE

    date

    SQL_SS_TIME2

    time

    SQL_TYPE_TIMESTAMP

    - lub -

    SQL_TIMESTAMP

    datetime, datetime2

    SQL_SS_TIMESTAMPOFFSET

    datetimeoffset

Jeśli dane nie są przechowywane w odpowiednich danych wejściowych lub parametr wyjściowy, pakiet nie powiedzie się.

W przypadku gdy przy użyciu parametrów klauzul

SELECT, INSERT, UPDATE i DELETE poleceń często zawierają klauzule WHERE do określ filtry, które określają warunki, każdy wiersz w źródło muszą spełniać tabele, aby kwalifikować się do polecenia SQL.Parametry zawierają wartości filtru w klauzulach WHERE.

Za pomocą parametru dynamicznie dotyczące wartości parametru.Reguły, które parametru znaczniki oraz nazwy parametrów mogą być używane w instrukcja języka SQL zależą od typu menedżer połączeń, który używa wykonanie instrukcja języka SQL.

Następujące tabela podano przykłady polecenia wyboru według typu menedżer połączeń.Instrukcje INSERT, UPDATE i DELETE są podobne.Przykłady umożliwia wybór powrót produktów z Product tabela w AdventureWorks2008R2 o ProductID większy i mniejszy niż wartości określone przez dwa parametry.

Typ połączenia

Wybierz składni

Program EXCEL i ODBC, OLEDB

SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?

ADO

SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?

ADO.NET

SELECT* FROM Production.Product WHERE ProductId > @parmMinProductID AND ProductID < @parmMaxProductID

Przykłady wymaga parametrów, które mają następujące nazwy:

  • Menedżerowie połączenia programu EXCEL i OLED DB użyć nazwy parametrów 0 i 1.Typ połączenia ODBC używa 1 i 2.

  • Typ połączenia ADO można użyć dowolnego dwie nazwy parametru, takie jak parametr1, parametr2, ale musi być mapowana parametrów ich pozycja porządkowa liście parametrów.

  • ADO.NET Typ połączenia używa nazwy parametrów @ parmMinProductID i @ parmMaxProductID.

Procedury przechowywane przy użyciu parametrów

Polecenia SQL, które uruchamiają procedur przechowywanych, można również użyć parametru mapowania.Zasady dotyczące używania parametru znaczniki oraz nazwy parametrów zależy od typu menedżer połączeń, który używa wykonanie instrukcji SQL, podobnie jak zasady kwerend parametrycznych.

Następujące tabela podano przykłady polecenia EXEC przez typ menedżer połączeń.Przykłady Uruchom uspGetBillOfMaterials procedura składowana w AdventureWorks2008R2.The stored procedure uses the @StartProductID and @CheckDate input parameters.

Typ połączenia

Składnia EXEC

Program EXCEL i OLEDB

EXEC uspGetBillOfMaterials ?, ?

ODBC

{call uspGetBillOfMaterials(?, ?)}

Aby uzyskać więcej informacji na temat składni połączenie ODBC, zobacz temat Parametry procedury, w ODBC Programmer's Reference w bibliotece MSDN.

ADO

If IsQueryStoredProcedure is zestaw to False, EXEC uspGetBillOfMaterials ?, ?

If IsQueryStoredProcedure is zestaw to True, uspGetBillOfMaterials

ADO.NET

If IsQueryStoredProcedure is zestaw to False, EXEC uspGetBillOfMaterials @StartProductID, @CheckDate

If IsQueryStoredProcedure is zestaw to True, uspGetBillOfMaterials

Aby użyć parametrów wyjściowych, składnia wymaga od słowa kluczowego wyjścia każdy znacznik parametru.Na przykład następująca składnia parametru wyjściowego jest poprawna: EXEC myStoredProcedure ? OUTPUT.

Aby uzyskać więcej informacji o używaniu parametry wejściowe i wyjściowe z języka Transact-SQL procedur przechowywanych, zobacz Parametry (aparat bazy danych), Zwracanie danych przy użyciu parametrów wyjściowych, i EXECUTE (Transact-SQL).

Pobieranie wartości zwracanych kodów

procedura składowana można zwrócić wartość całkowitą, nazywane kod zwrotny, aby wskazać stan wykonania procedury.Aby zaimplementować kody powrotne w zadanie wykonanie instrukcji SQL, używać parametrów ReturnValue typu.

Następujące tabela list przez połączenia wpisz przykłady poleceń EXEC, które implementują kody zwrotne.We wszystkich przykładach użyto input parametru.Zasady dotyczące używania parametru znaczniki oraz nazwy parametrów są takie same dla wszystkich typów parametrów —Input, Output, i ReturnValue.

Niektóre składni nie obsługuje parametru literałów.W takim przypadek należy podać wartość parametru za pomocą zmiennej.

Typ połączenia

Składnia EXEC

Program EXCEL i OLEDB

EXEC ? = myStoredProcedure 1

ODBC

{? = call myStoredProcedure(1)}

Aby uzyskać więcej informacji na temat składni połączenie ODBC, zobacz temat Parametry procedury, w ODBC Programmer's Reference w bibliotece MSDN.

ADO

If IsQueryStoreProcedure is zestaw to False, EXEC ? = myStoredProcedure 1

If IsQueryStoreProcedure is zestaw to True, myStoredProcedure

ADO.NET

zestaw IsQueryStoreProcedure is zestaw to True.

myStoredProcedure

W składni przedstawionej w poprzedniej tabela zadanie wykonanie instrukcji SQL używa Wprowadzania bezpośredniego typu, aby uruchomić procedura składowana źródło.Można także użyć zadania wykonanie instrukcji SQL Połączenie z plikiem typu, aby uruchomić procedura składowana źródło.Regardlesss czy korzysta zadania Excecute SQL Wprowadzania bezpośredniego lub Pliku połączenia typu źródło, należy użyć parametru ReturnValue Typ, aby zaimplementować kod zwrotny.Aby uzyskać więcej informacji na temat konfigurowania typ źródło w instrukcja języka SQL, który uruchamia zadanie wykonanie instrukcja języka SQL, zobacz Uruchomić Edytor zadań SQL (strona Ogólne).

Aby uzyskać więcej informacji o używaniu kody powrotne z języka Transact-SQL procedur przechowywanych, zobacz Zwracanie danych przy użyciu kod zwrotny i ZWROT (Transact-SQL).

Konfigurowanie parametrów i zwracanych kodów w wykonywanie zadań SQL

Więcej informacji na temat właściwości parametry i powrotu kodami, który zestaw w SSIS Projektant, kliknij następujący temat:

Aby uzyskać więcej informacji dotyczących sposobu zestaw tych właściwości w SSIS Projektant, kliknij następujący temat:

Zasoby zewnętrzne

Ikona usług Integration Services (mała)Bieżąco z usług integracji

Pobieranie najnowszych artykułów, próbek i wideo z Microsoft, jak również wybranych rozwiązań ze Wspólnoty, odwiedź witrynę Integration Services strona na MSDN i TechNet:

Aby otrzymywać automatyczne powiadomienia dotyczące tych aktualizacji, zasubskrybuj źródła danych RSS dostępne na tej stronie.