Alles, was ich gelesen habe, besagt, dass beim Erstellen einer verwalteten gespeicherten Prozedur mit der rechten Maustaste in Visual Studio klicken und Deploy auswählen. Das funktioniert gut, aber was ist, wenn ich es außerhalb von Visual Studio an verschiedenen Standorten bereitstellen möchte? Ich habe versucht, die Assembly mit der DLL das Projekt in SQL erstellt zu erstellen, und während es die Assembly hinzugefügt wurde, erstellt es die Prozeduren nicht aus der Assembly. Hat jemand herausgefunden, wie man das direkt in SQL macht, ohne Visual Studio zu benutzen?Wie stelle ich eine verwaltete gespeicherte Prozedur bereit, ohne Visual Studio zu verwenden?
Antwort
Kopieren Sie Ihre Assembly DLL-Datei auf das lokale Laufwerk auf Ihren verschiedenen Servern. Dann die Assembly mit der Datenbank registrieren:
create assembly [YOUR_ASSEMBLY]
from '(PATH_TO_DLL)'
... dann erstellen Sie eine Funktion die entsprechende öffentliche Methode in der DLL-Referenzierung:
create proc [YOUR_FUNCTION]
as
external name [YOUR_ASSEMBLY].[NAME_SPACE].[YOUR_METHOD]
unbedingt die [Klammern verwenden, insbesondere um die NAME_SPACE. Namespaces können eine beliebige Anzahl von Punkten enthalten, SQL-IDs jedoch nicht, sofern die Teile nicht explizit durch eckige Klammern voneinander getrennt sind. Dies war eine Quelle vieler Kopfschmerzen, als ich SQL CLR zum ersten Mal verwendete.
Um klar zu sein, ist [YOUR_ASSEMBLY] der Name, den Sie in SQL definiert haben; [NAME_SPACE] ist der .NET-Namespace innerhalb der DLL, in dem Ihre Methode gefunden werden kann. und [YOUR_METHOD] ist einfach der Name der Methode in diesem Namespace.
Für etwas mehr Detail/Klärung @ anwser des kcrumley oben hinzufügen:
[NAME_SPACE] sind die vollständig qualifizierten Typnamen und nicht nur der Namensraum
- also, wenn Ihre Klasse StoredProcedures
in einem Namespace genannt wird von My.Name.Space
müssen Sie [My.Name.Space.StoredProcedures]
für den Teil [NAME_SPACE] verwenden.
Wenn sich Ihre verwalteten gespeicherten Prozeduren in einer Klasse befinden, für die kein Namespace definiert ist, verwenden Sie einfach den Namen der nackten Klasse (z. B. [StoredProcedures]
).
Ich hatte auch ein wenig Mühe, herauszufinden, wie man eine Prozedur mit Argumenten/Parametern hinzufügt. So heres eine Probe für jemand anderes versucht, dies zu tun:
CREATE PROCEDURE [YOUR_FUNCTION]
(
@parameter1 int,
@parameter2 nvarchar
)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [YOUR_ASSEMBLY].[StoredProcedures].[YOUR_FUNCTION]
- 1. Wie stelle ich eine Angular.js App bereit?
- 2. Wie stelle ich eine node.js-App in Visual Studio Online auf Azure bereit?
- 3. Wie stelle ich eine Java-Webanwendung bereit?
- 4. Wie stelle ich eine App auf einem Microsoft Surface Tablet mit Visual Studio 2012 bereit?
- 5. Wie kann ich eine gespeicherte Prozedur bearbeiten?
- 6. Wie stelle ich Anwendungen im Administratormodus bereit?
- 7. Baumhierarchische Abfrage ohne gespeicherte Prozedur
- 8. Wie plane ich eine gespeicherte Prozedur?
- 9. Wie stelle ich eine vorbereitete git commit-Nachricht bereit?
- 10. Wie stelle ich eine Textdatei in einer Android App bereit?
- 11. Wie Sie eine gespeicherte DB2-Prozedur mit Visual Basic aufrufen?
- 12. Ist es möglich, eine gespeicherte Prozedur über eine Menge auszuführen, ohne einen Cursor zu verwenden?
- 13. Wie erstellt man eine neue gespeicherte Prozedurvorlage für Visual Studio?
- 14. Wie stelle ich ein Datenbankprojekt bereit?
- 15. Wie stelle ich eine node.js App mit maven bereit?
- 16. Wie stelle ich tomcat7-maven-plugin bereit?
- 17. Wie gespeicherte Prozedur in Inner Joins verwenden?
- 18. Wie stelle ich eine öffentlich zugängliche SharePoint 2007-Website bereit?
- 19. Wie stelle ich eine Rails-App auf Dreamhost bereit?
- 20. Windows Azure: Wie stelle ich eine Konfigurationseinstellung als Umgebungsvariable bereit?
- 21. Wie stelle ich eine JAX-RS-Anwendung bereit?
- 22. Wie stelle ich eine Site mit git erneut bereit?
- 23. Gespeicherte Prozedur, die eine andere gespeicherte Prozedur ausführt
- 24. Wie stelle ich eine Qt-Anwendung unter Windows bereit?
- 25. Wie stelle ich eine OpenLaszlo Solo-Anwendung bereit?
- 26. Wie stelle ich eine Typ-Annotation für AsRef bereit?
- 27. Wie stelle ich eine eigene Jar-Datei in Artifactory bereit?
- 28. Wie stelle ich eine MeteorJS-App auf Windows Azure bereit?
- 29. Wie stelle ich eine Dockerfile von Vagrant bereit
- 30. So verwenden Sie gespeicherte Prozedur in SqlCE
Ich fand [diese] (https://msdn.microsoft.com/en-us/library/ms254956 (v = VS.90) aspx) eine hilfreiche Ressource zu sein, um das Ganze von der Befehlszeile aus zu erreichen – user2426679