Gibt es einen einfachen Prozess in SQL 2005 zum Spucken aller gespeicherten Prozeduren in einzelne .SQL-Dateien. Ich möchte sie in VSS verschieben, bin aber nicht allzu begeistert von der Aussicht, auf jeden einzelnen zu klicken, um die Quelle zu erhalten, sie in eine Textdatei zu schreiben usw.Gespeicherte Prozeduren in .SQL-Dateien
Antwort
In SQL Management Studio mit der rechten Maustaste auf die Datenbank, gehen Sie zu Aufgaben -> Skripte erstellen, den Assistenten durchgehen. Auf einer der Seiten können Sie jedes Objekt in eine eigene Datei schreiben.
Sie können dies auswählen:
select
O.name, M.definition
from
sys.objects as O
left join
sys.sql_modules as M
on O.object_id = M.object_id
where
type = 'P'
und Sie erhalten den Namen und den Quellcode für gespeicherte Prozeduren. Wahrscheinlich einfachste Weise, wie man es in Dateien steckt, ist in einigen "klassischen" Sprachen wie C#, Java, etc ...
Wenn Sie Ihre gesamte Datenbank versionieren möchten, verfügt Microsoft über einen SQL Server-Assistenten zum Veröffentlichen von Datenbanken (Sie können es herunterladen here). Die Übersicht besagt, dass es eine direkte Integration mit Visual Studio gibt, aber ich habe es nicht persönlich verwendet, um zu bestätigen, wie gut (oder schlecht) es sein könnte.
Ich schrieb ein Werkzeug namens SMOscript, das eine Option zum Erstellen einer einzelnen .SQL-Datei pro Datenbankobjekt hat.
Sie verwendet die SMO-Bibliothek von SQL Server zum Generieren von CREATE- und DROP-Skripts.
Versuchen Sie Sql Server SMO zu verwenden. Ein Beispiel ist unten enthalten:
//C:\Program Files\Microsoft SQL Server\{version}\SDK\Assemblies\
using Microsoft.SqlServer;
using Microsoft.SqlServer.Server;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using System.Data.SqlClient;
string sqlConnectionString="";
string databaseName="";
var Connection = new SqlConnection(sqlConnectionString);
Connection.Open();
int counter = 0;
var db= new Server(new ServerConnection(Connection)).Databases[databaseName];
foreach (var item in db.StoredProcedures.OfType<StoredProcedure>())
{
if (item.IsSystemObject == false)
{
using (TextWriter writer = new StreamWriter(item.Name+".sql", false))
{
writer.WriteLine(item.TextHeader + item.TextBody);
}
}
}
Sie können auch das folgende Skript verwenden, um ausgewählte Datenbank gespeicherte Prozedur Skripte in einer separaten SQL-Datei zu generieren, Dateien mit Namen von Prozedur erstellen sein werden.
Mit dynamischer Abfrage und Cursor, können Sie es wie folgt tun:
DECLARE @name varchar(100)
DECLARE @Definition varchar(max)
DECLARE @sql varchar(300)
CREATE TABLE TEMPTABLE (ID INT IDENTITY(1,1), def varchar(max))
DECLARE script CURSOR
FOR
SELECT OBJECT_NAME(SYS.SQL_MODULES.OBJECT_ID), [DEFINITION] FROM
SYS.SQL_MODULES INNER JOIN SYS.OBJECTS ON
SYS.OBJECTS.OBJECT_ID = SYS.SQL_MODULES.OBJECT_ID
WHERE SYS.OBJECTS.TYPE='P'
OPEN script
FETCH NEXT FROM script INTO @name, @Definition
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM script INTO @name, @Definition
INSERT INTO TEMPTABLE VALUES(@definition)
SET @Sql = ('BCP "SELECT TOP 1 def FROM TEMPTABLE ORDER BY ID DESC" queryout "C:\' + @name + '.sql" -c -T')
EXEC XP_CmdShell @Sql
END
CLOSE script
DEALLOCATE script
DROP TABLE TEMPTABLE
- 1. Gespeicherte Prozeduren in Hive
- 2. Gespeicherte Prozeduren und Funktionen
- 3. gespeicherte SQL-Prozeduren
- 4. Muster für gespeicherte Prozeduren?
- 5. Gespeicherte Prozeduren in Rails verwenden
- 6. Gespeicherte Prozeduren PHP
- 7. Gespeicherte Prozeduren im Entitätsframework
- 8. gespeicherte Prozeduren mit sqlAlchemy
- 9. EF4-Vererbung und gespeicherte Prozeduren
- 10. MySQL: Ansichten vs gespeicherte Prozeduren
- 11. Spring Data und gespeicherte Prozeduren
- 12. SubSonic - Nicht-Crud Gespeicherte Prozeduren
- 13. Hilfe, gespeicherte Prozeduren und Cursor
- 14. Gespeicherte Prozeduren für komplexe Abfragen
- 15. Gespeicherte Prozeduren oder OR-Mapper?
- 16. Gute Ressource für gespeicherte Prozeduren
- 17. Gespeicherte Prozeduren mit SQLAlchemy erstellen
- 18. ASP.NET MVC Aufruf gespeicherte Prozeduren
- 19. So sichern Sie gespeicherte Prozeduren in MySQL
- 20. Gespeicherte Prozeduren und Trigger in der Datenbank
- 21. Verschiedene gespeicherte Prozeduren parallel in EF6 ausführen
- 22. clr gespeicherte Prozeduren mit zwei in Parametern
- 23. Neo4j 3.0.3 Gespeicherte Prozeduren in Scala
- 24. Spionage- und Komponententest Gespeicherte Prozeduren in EF
- 25. In MySQL sind gespeicherte Prozeduren effizienter?
- 26. Benannte Parameter für gespeicherte Prozeduren in MySQL
- 27. Optionale Parameter in Mysql gespeicherte Prozeduren
- 28. Gespeicherte Prozeduren/Funktionen in allen Datenbanken durchsuchen
- 29. SQL Server fehlende Tabellen und gespeicherte Prozeduren
- 30. Gespeicherte MySQL-Prozeduren mit Javascript-Objekten verwenden
Nice! Ich wusste nichts davon. – VVS