Rufen Sie dll-Funktion von gespeicherten sql-Prozedur über die aktuelle Verbindung
Kann ich aufrufen einer dll von einer gespeicherten Prozedur mit der Verbindung öffnen?
Ich habe eine dll, die bekommt die Daten von SQL Server, und ich möchte nicht eine neue Verbindung zu öffnen, wenn ich es aufrufen der gespeicherten Prozedur.
Danke
Hier ist ein exemple
public class Class1
{
public static SqlString GetName(SqlString str)
{
SqlCommand cmd = new SqlCommand(str.ToString());
cmd.CommandType = System.Data.CommandType.Text;
string name = cmd.ExecuteScalar().ToString();
return name;
}
}
- und dies ist der SQL-code
CREATE FUNCTION fn_TestConnection
(
@str nvarchar(255)
)
RETURNS nvarchar(max)
AS EXTERNAL NAME TestConnection.[TestConnection.Class1].GetName
GO
SELECT dbo.fn_TestConnection('SELECT FName FROM Clients WHERE Id = 1' )
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Anweisungen sind für Microsoft SQL Server Management Studio 2014.
Importieren Sie die Montage
Zuerst importieren zu müssen, dass die Versammlung in Ihrer Datenbank in SQL Server Management Studio navigieren, um die Neue Montage-dialog-Fenster:
Innerhalb der 'Neuen Baugruppe" - dialog-Fenster, wählte
Browse
unter derPath to assembly
Feld und wählen Sie die assembly, die Sie importieren möchten. Passen Sie die Berechtigungen und klicken Sie aufok
.Wrap Assembly-Methoden in einer SQL-Funktion
Als Nächstes benötigen Sie die sql-Funktion wickeln Sie Ihre assembly-Methode wie diese:
Wenn Sie wollen, um zurückzukehren Tabelle Ihre Funktion Lesen über SqlFunctionAttribute in .NET.