Za pomocą zestawów zweryfikowania z programem SQL Server (C + +/ CLI)
Rozszerzone procedury przechowywane, pakowane jako biblioteki (dll), umożliwiają rozszerzenie funkcji programu SQL Server za pośrednictwem funkcji opracowanych z Visual C++.Rozszerzone procedury przechowywane są implementowane jako funkcji wewnątrz biblioteki DLL.Oprócz funkcji, można również zdefiniować rozszerzonych procedur przechowywanych Typy zdefiniowane przez użytkownika i Funkcje agregujące (takich jak Suma lub średnia).
Gdy klient wykonuje procedurę przechowywaną, wyszukiwanie serwera SQL dla biblioteki DLL skojarzone z rozszerzona procedura przechowywana i ładuje bibliotekę DLL.SQL Server wymaga żądanej rozszerzona procedura przechowywana i jest wykonywany w kontekście zabezpieczeń.Rozszerzona procedura przechowywana, a następnie wynik przebiegów ustawia i zwraca parametry na serwer.
SQL Server 2005zapewnia rozszerzenia (T-SQL) pozwala zainstalować sprawdzalnych zestawów do programu SQL Server Transact-SQL.Zestaw uprawnień programu SQL Server Określa kontekst zabezpieczeń z następujące poziomy zabezpieczeń:
Tryb nieograniczony: uruchomienie kodu na własne ryzyko; kod nie musi być sprawdzalny typ palety.
Tryb bezpieczny: sprawdzalny uruchomić kod typesafe; skompilowana z /clr:safe.
Tryb awaryjny wymaga wykonane zestawów sprawdzalny za typesafe.
Tworzenie i ładowanie zestawu sprawdzalnych do programu SQL Server, należy użyć poleceń języka Transact-SQL, tworzenie zestawu i UPUŚĆ montażu w następujący sposób:
CREATE ASSEMBLY <assemblyName> FROM <'Assembly UNC Path'> WITH
PERMISSION_SET <permissions>
DROP ASSEMBLY <assemblyName>
Polecenie PERMISSION_SET Określa kontekst zabezpieczeń i może mieć wartości bez ograniczeń, bezpieczne lub EXTENDED.
Ponadto można użyć polecenia Utwórz funkcji powiązać nazwy metody w klasie:
CREATE FUNCTION <FunctionName>(<FunctionParams>)
RETURNS returnType
[EXTERNAL NAME <AssemblyName>:<ClassName>::<StaticMethodName>]
Przykład
Poniższy skrypt SQL (na przykład nazwanego "MyScript.sql") ładuje zestawu do programu SQL Server i udostępnia metody klasy:
-- Create assembly without external access
drop assembly stockNoEA
go
create assembly stockNoEA
from
'c:\stockNoEA.dll'
with permission_set safe
-- Create function on assembly with no external access
drop function GetQuoteNoEA
go
create function GetQuoteNoEA(@sym nvarchar(10))
returns real
external name stockNoEA:StockQuotes::GetQuote
go
-- To call the function
select dbo.GetQuoteNoEA('MSFT')
go
Skrypty SQL może być wykonywany interaktywnie, w programie SQL Query Analyzer lub narzędzia sqlcmd.exe, w wierszu polecenia.Następujący wiersz polecenia łączy z serwerem MójSerwer, używa domyślnej bazy danych, korzysta z zaufanego połączenia, nakłady MyScript.sql i wyprowadza MyResult.txt.
sqlcmd –S MyServer -E –i myScript.sql –o myResult.txt