Gibt es eine Möglichkeit beim Ausführen einer gespeicherten Prozedur in Management Studio, um die Datentypen der Ergebnismengen zurück zu bekommen? Ich bin auf der Suche nach etwas wie Funktionalität von, wenn Sie einen Tabellennamen an sp_help übergebenWie können die Datentypen nach dem Ausführen einer gespeicherten Prozedur angegeben werden?
Antwort
Kein einfacher Weg in den Sinn kommt ohne syscomments zu analysieren, um zu sehen, was es von wo abfragt. Wenn Sie den SP bearbeiten können, um XML auszuwählen, können Sie XML_INFO an die Abfrage anhängen, um das Schema zurückzuerhalten.
Sie sehen sich die Typen zwar an, wenn Sie die gespeicherte Prozedur über ADO, ADO.NET, ODBC oder ähnliches aufrufen: Die resultierenden Recordsets haben die gesuchte Information. Sind Sie wirklich auf Management Studio beschränkt?
Sie könnten immer eine tatsächliche Tabelle verwenden, die eindeutig eindeutig ist. Es ist ein Klud, aber es ist eine Option. Dies funktioniert jedoch nicht in einem gespeicherten Proc.
if exists (select * from sys.tables where name = 'tmp_TableName')
drop table tmp_TableName
go
select * into tmp_TableName from MyTable
--do some stuff
go
if exists (select * from sys.tables where name = 'tmp_TableName')
drop table tmp_TableName
go
Eigentlich kann man es innerhalb einer SP tun:
EXEC ('if exists (select * from sys.tables where name = ''tmp_TableName'') drop table tmp_TableName')
EXEC ('select * into tmp_TableName from MyTable')
-- Grab the column types from INFORMATION_SCHEMA here
EXEC ('if exists (select * from sys.tables where name = ''tmp_TableName'') drop table tmp_TableName')
Obwohl ich dort denken muss einen besseren Weg geben.
Es ist nicht die eleganteste Lösung, aber Sie könnten OPENROWSET verwenden, um die gespeicherten Proc-Ergebnisse in eine Tabelle zu schreiben, und dann sp_help verwenden, um eine Beschreibung zu erhalten.
zB
select * into tmp_Results
from openrowset('SQLOLEDB.1'
, 'Server=your_server_name;Trusted_Connection=yes;'
, 'exec your_stored_proc')
exec sp_help 'tmp_Results'
drop table tmp_Results
Ihre beste Wette wäre, um die gespeicherte Prozedur eine Funktion zu ändern. Aber das funktioniert nur, wenn es Ihre Umgebung erlaubt.
- 1. Ausführen einer gespeicherten Prozedur innerhalb einer gespeicherten Prozedur
- 2. können wir verschiedene Abfragen in einer gespeicherten Prozedur gleichzeitig ausführen?
- 3. Ausführen eines FuncView innerhalb einer gespeicherten Prozedur
- 4. Ausführen einer gespeicherten Prozedur in einer anderen gespeicherten Prozedur in SQL Server
- 5. Suchen einer gespeicherten Prozedur
- 6. Wie unterdrücke ich die Ergebnisse einer gespeicherten Prozedur aus einer gespeicherten Prozedur?
- 7. Muss ich SubmitChanges nach dem Ausführen einer gespeicherten Prozedur mit Linq-To-Sql?
- 8. Ausführen einer gespeicherten Prozedur in einer SELECT-Anweisung
- 9. Wie können die in einer Liste gespeicherten Werte angezeigt werden?
- 10. Kann mehrere Abfragen in einer gespeicherten Prozedur ohne Fehler ausführen
- 11. Ausführen einer gespeicherten Prozedur als eine andere Benutzerberechtigung
- 12. Wie Debuggen einer gespeicherten Prozedur in Toad?
- 13. Fehler beim Ausführen der gespeicherten Prozedur in einer anderen Datenbank?
- 14. Ausführen einer gespeicherten Oracle-Prozedur über eine Datenbankverbindung
- 15. Ausführen einer gespeicherten Prozedur von Oracle SQL Developer
- 16. Ausführen der gespeicherten Prozedur verursacht Fehler
- 17. Exit von einer gespeicherten Prozedur
- 18. Auftrag von einer gespeicherten Prozedur
- 19. Wie Prozedur eine Datentabelle von einer gespeicherten
- 20. Wie lautet die Syntax zum Definieren einer Oracle-Prozedur in einer anderen gespeicherten Prozedur?
- 21. Problem beim Ausführen der gespeicherten SQL-Prozedur von C#
- 22. DataSet-Tabellenname aus einer gespeicherten Prozedur
- 23. Aufrufen einer gespeicherten Prozedur von Perl
- 24. Warum ist das Aufrufen einer gespeicherten Prozedur langsamer als das Ausführen des Codes in der gespeicherten Prozedur?
- 25. Können JSON-Nummern angegeben werden?
- 26. Wie können Werte für LuaSQL angegeben werden?
- 27. Wie können wir Ausgabeparametergröße in der gespeicherten Prozedur definieren?
- 28. Suche Zeichenfolge in einer gespeicherten Prozedur
- 29. SQL Aggregat Ergebnisse einer gespeicherten Prozedur
- 30. Wie kann ich Demo-Daten mit einer gespeicherten Prozedur weiterleiten?