¿Hay un proceso simple en SQL 2005 para escupir todos mis procedimientos almacenados a archivos .sql individuales. Me gustaría moverlos a VSS, pero no estoy muy entusiasmado con la posibilidad de hacer clic en cada uno para obtener el origen, volcarlo en un archivo de texto, etc.Procedimientos almacenados a archivos .sql
Respuesta
En SQL Management Studio, haga clic derecho en la base de datos, vaya a tareas -> Generar scripts, recorra al mago. Una de las páginas le permitirá guionar cada objeto a su propio archivo.
Puede ejecutar esto seleccione:
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'
y obtendrá el nombre y el código fuente para los procedimientos almacenados. La manera más fácil de usar, cómo ponerlo en los archivos es en algunos lanzamientos "clásicos" como C#, java, etc ...
Si desea versionar toda su base de datos, Microsoft tiene un Asistente de publicación de bases de datos de SQL Server (puede descargarlo here). La descripción general dice que hay una integración directa con Visual Studio, pero no lo he usado personalmente para dar fe de lo bueno (o malo) que podría ser.
Escribí una herramienta que llamé SMOscript que tiene una opción para crear un solo archivo .sql por objeto de base de datos.
Utiliza la biblioteca SMO de SQL Server para generar scripts CREATE y DROP.
Intente utilizar Sql Server SMO. Un ejemplo se incluye a continuación:
//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);
}
}
}
También puede utilizar el siguiente script para generar bases de datos almacenada secuencias de procedimientos seleccionados en un archivo .sql separada, los archivos se crean por el nombre del procedimiento.
Usando consulta dinámica y el cursor, puede hacerlo de esta manera:
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. Versiones de procedimientos almacenados
- 2. procedimientos almacenados con sqlAlchemy
- 3. Procedimientos almacenados en LINQ-to-SQL
- 4. Mejores lenguajes que SQL para procedimientos almacenados
- 5. Funciones vs procedimientos almacenados
- 6. WebMatrix y procedimientos almacenados
- 7. ¿Accediendo a procedimientos almacenados con robconery/masivo?
- 8. ¿Cómo puedo encontrar llamadas a procedimientos almacenados?
- 9. Consultas de LINQ frente a Procedimientos almacenados
- 10. Crear reutilizable Linq a SQL para procedimientos almacenados
- 11. Al recurrir a procedimientos almacenados en lugar de SQL incrustado
- 12. ¿El SQL formado dinámicamente en los procedimientos almacenados niega el propósito mismo de los procedimientos almacenados?
- 13. Procedimientos almacenados y pruebas unitarias
- 14. Procedimientos almacenados Ingeniería inversa
- 15. Procedimientos almacenados y funciones
- 16. consultas parametrizadas SIN procedimientos almacenados?
- 17. Procedimientos almacenados - Fin de días
- 18. Procedimientos almacenados vs. Vistas
- 19. Patrones para procedimientos almacenados?
- 20. Importación de procedimientos almacenados existentes En SQL Server
- 21. cómo guardar los procedimientos SQL almacenados en archivos .sql por lote
- 22. C#/SQL Obtenga todos los procedimientos almacenados y su código
- 23. Clasificación dinámica dentro de los procedimientos almacenados de SQL
- 24. SQL Server: Migrar procedimientos almacenados entre bases de datos, instancias
- 25. sql dinámico vs procedimientos almacenados - pros y contras?
- 26. MySQL: Vistas vs Procedimientos almacenados
- 27. ¿Los procedimientos almacenados de SQL distinguen entre mayúsculas y minúsculas?
- 28. Analizador de tablas y columnas SQL para procedimientos almacenados
- 29. Tablas temporales en procedimientos almacenados
- 30. Lanzar excepciones en procedimientos almacenados de SQL CLR
Nice! No sabía sobre eso. – VVS