J'ai une longue liste de SP (procédure stockée) et de fonctions dans mon serveur SQL db. Je pourrais les enregistrer un par un en cliquant droit et le script XXX à Alter To. Est-il possible dans TSQL d'interroger tous les SP et les fonctions les enregistrer dans des fichiers xxx.sql? Par exemple, pour sp_mySP1, je voudrais l'enregistrer dans sp_mySP1.sql qui est un fichier texte. Par exemple, pour sp_mySP1, je voudrais l'enregistrer dans sp_mySP1.sql. La base de données est trop grande et je voudrais sauvegarder seulement les SP et les fonctions comme une sauvegarde des codes source.moyen rapide pour sauvegarder SQL SP et fonctions?
Répondre
En studio de gestion; trouver la base de données, cliquez avec le bouton droit, tâches, générer des scripts;
prochain-suivant jusqu'à ce que vous "Choisissez les types d'objet". Sélectionnez "Procédures stockées" et "Fonctions définies par l'utilisateur", ensuite, Sélectionner tout; choisissez une sortie; aller!
Super! Il fonctionne comme un charme. La seule chose est que les données ne sont pas scriptées, je veux dire des scripts d'insertion. S'il y avait l'option faire cela pour certaines tables de petite taille, ce serait génial. –
Eh bien, vous avez demandé des SP et des fonctions. Pour les données Tâches -> Exporter des données –
Vous pouvez scripter des données avec des tables ... Dans l'écran Générer des options de scripts, définissez l'option 'Données de script' sur Vrai. –
Vous pouvez interroger syscomments pour obtenir votre texte de création d'objet sql, mais je ne sais pas comment les enregistrer tous dans des fichiers séparés en utilisant uniquement TSQL.
select * from syscomments
Intéressant. Je suppose que la colonne de texte est pour les codes source. C'est comme une longue longue ligne. De toute façon pour trouver le nom de l'id pour sp ou nom de la fonction? –
Vous pouvez rejoindre avec sysobjects. Je suppose que vous pouvez comprendre comment les joindre, car je n'ai pas d'environnement pratique. –
select * from sysobjects –
1) Faites un clic droit sur le nom de votre base de données dans l'Explorateur d'objets
2) Sélectionnez "Tâches> Générer des scripts ..." dans le menu contextuel
3) Sélectionnez votre base de données la liste et cliquez sur Suivant
4) Cliquez sur Suivant les options de script AVONS CHOISI
5) Dans les types d'objets, vérifier les procédures stockées et les fonctions définies par l'utilisateur, cliquez sur Suivant
6) Cliquez sur Sélectionner tout sur les procédures stockées écran de sélection, cliquez sur Suivant
7) Cliquez sur Sélectionner tout sur l'écran de sélection des fonctions, cliquez sur Suivant
8) Sélectionnez « Script à Nouvelle requête Fenêtre » et cliquez sur Terminer
Voici un proc qui exportera QUELQUES types de données.
if exists (select * from sysobjects where name = 'ExportData_P')
drop proc ExportData_P
go
CREATE PROC dbo.ExportData_P (
@tableName varchar(500),
@where varchar(5000) = '(1=1)'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @sql varchar(8000)
DECLARE @fieldList varchar(8000)
DECLARE @valueList varchar(8000)
SELECT @fieldList = '', @valueList = ''
DECLARE @cols TABLE (column_name nvarchar(250), data_type varchar(250))
DECLARE @c nvarchar(250), @data_type varchar(250)
INSERT INTO @cols
select column_name, data_type
from information_Schema.columns
where table_name = @tableName
WHILE EXISTS (SELECT TOP 1 * FROM @cols)
BEGIN
SELECT TOP 1 @c = column_name, @data_type = data_type FROM @cols
SELECT
@fieldList = @fieldList + @c + ', ',
@valueList = @valueList + CHAR(13) + 'case when ' + @c + ' is null then ''NULL'' else '''''''' + ' +
case when @data_type in ('text','ntext','char', 'nvarchar', 'varchar') then
' REPLACE (REPLACE (REPLACE ('
else ''
end +
'IsNull (convert(varchar' +
(-- change this section to pass the length of varchar to convert
case when @data_type in ('uniqueidentifier') then '(50)'
when @data_type in ('text', 'ntext') then '(8000)'
else '' end
) +
', ' +
@c +
'), '''')' + -- end is null
case when @data_type in ('text','ntext','char', 'nvarchar', 'varchar') then
', CHAR(39), CHAR(39)+CHAR(39)), CHAR(13), '''' + CHAR(13) + ''''), CHAR(9), '''' + CHAR(9) + '''') '
else ''
end +
' + '''''''' end + '', '' + '
DELETE FROM @cols WHERE column_name = @c
END
SELECT @fieldList = LEFT (@fieldList, LEN(@fieldList)-1),
@valueList = LEFT (@valueList, LEN(@valueList)-1)
SELECT @sql = 'select ''insert into ' + @tableName + ' (' + @fieldList + ') ' +
' VALUES (''+ ' + left (@valueList, len(@valueList)-5) + ''') '' from ' + @tableName +
' WHERE ' + @where
-- into [#mcoe_temp_export' + @tableName + ']
print @sql
EXEC (@sql)
--EXEC ('select * from [#mcoe_temp_export' + @tableName + ']')
SET NOCOUNT OFF
END
go
utilisation comme:
exec ExportData_P 'tablename'
comment obtenir une liste de noms de table? Ensuite, j'utilise votre SP pour faire une boucle ... –
select top 10 * à partir de sysobjects où xtype = 'U' – Jamie
- 1. Existe-t-il un moyen plus rapide de sauvegarder et de restaurer pour mysql?
- 2. Contrôle de version de base de données SQL Server 2008 Suppression de SP et de fonctions
- 3. asp .net page pour sauvegarder sql db
- 4. Linq to SQL paramètres SP
- 5. Fonctions d'agrégat SQL utilisant MIN et AVG
- 6. Nettoyage d'un SP SQL avec Regex
- 7. Fonctions et procédures dans SQL Server
- 8. moyen le plus rapide pour formater les résultats SQL en PHP
- 9. algorithme le plus rapide pour obtenir le changement moyen
- 10. Comment sauvegarder les jobs SQL Server Agent?
- 11. fonctions SQL globales
- 12. Le moyen le plus rapide d'attraper l'écran? N'importe quelle langue
- 13. Mappage sur un lecteur réseau par SQL SP
- 14. WPF - moyen rapide d'obtenir l'arbre visuel
- 15. MS SQL SP - Utilisation du jeu d'enregistrements EXEC
- 16. INSERT rapide SQL sans UPDATE
- 17. Récupère dynamiquement une valeur d'une variable dans SQL Server SP
- 18. Stockage dict rapide et indexable pour Python
- 19. Un moyen simple et rapide pour obtenir l'entrée de l'utilisateur dans WPF?
- 20. Qu'est-ce qu'un moyen rapide et facile de m'envoyer des emails HTML pour les tester?
- 21. J'ai besoin d'un moyen rapide et sale pour ajouter à un fichier texte dans vb.net
- 22. Suggestions pour sauvegarder le site php et mysql db
- 23. SQL Server SP, fonction, Afficher le compteur de lignes source
- 24. SQL Server SP - paramètre Pass pour la liste de tableaux "IN"?
- 25. SQL: SELECT IN plus rapide et meilleure pratique?
- 26. SQL Server -SP chemin d'exécution est stocké sur Stack?
- 27. Chargement de DataTable dans SP
- 28. TSQL/SP instruction INSERT avec le texte et les valeurs
- 29. Quel serait le meilleur moyen de sauvegarder et de restaurer les dumps mysql avec php?
- 30. Quel est le moyen le plus rapide pour lire/écrire sur le disque dans .NET?
J'ai une fonction SaveToFile (xml, nom de fichier) pour enregistrer xml dans un fichier. Vous ne savez pas si je peux utiliser cette fonction pour passer des SP en XML dans un fichier? –