2009-01-11 10 views
1

Je recherche le texte des vues système et des procédures dans SQL Server 2005 à l'aide de l'explorateur d'objets ou de l'aide de sp_helptext. En fait, je viens de l'arrière-plan SQL Server 2000, où nous avons la fonctionnalité de récupération du code de la vue et la procédure stockée en utilisant SQL Server 2000 Enterprise Manager directement, mais je suis toujours incapable de trouver cette fonctionnalité dans le SQL Server 2005 Management Studio et recherche toujours la même fonctionnalité pour obtenir le texte de vue et de procédure dans SQL Server 2005.Texte des vues système dans SQL Server 2005

Veuillez s'il vous plaît m'aider dans cela.

Répondre

3

Avez-vous accès à SQL Server Management Studio? Il est maintenant sys.sp_helptext et peut être consulté au maître -> programmabilité -> Procédures stockées -> Procédures stockées système dans le navigateur d'objets et exécuté avec

exec sys.sp_helptext ObjectName 

Toutes les informations que vous cherchez peut être trouvé dans la table syscomments qui stocke les définitions de toutes les vues, règles, valeurs par défaut, triggers, contraintes CHECK, contraintes DEFAULT et procédures stockées. Les instructions de définition SQL sont stockées dans la colonne "text".

select text from syscomments where id = 
OBJECT_id('objectname') 
order by colid 
+0

merci pour vos commentaires, et encore je vous pose la même question en cas de points de vue, s'il vous plaît laissez-moi savoir comment obtenir le texte de vue dans SQL Server 2005. ici je suis à nouveau à la recherche du texte de la vues système telles que présentes dans la base de données SQL Server 2005 Master. –

+0

La même requête concerne les vues, les procédures, les fonctions, etc. sélectionner le texte de master..syscomments où id = object_id ('information_schema.columns') – cmsjr

+0

Mais ami, c'est comme utiliser l'analyseur de requête et la commande sp_helptext dans SQL Server 2000, mais comment faire la même chose en utilisant le SQL Server 2005 Enterprise Manager, comme nous pouvons facilement le faire pour les vues dans SQL Server 2000 Enterprise Manager, j'espère que je suis clair sur ce point et merci pour la requête –

1

This Stackoverflow posting a une base de données d'ingénierie inverse de script qui (entre autres) reverse engineering voir définitions. À partir du script

-- This generates view definitions 
-- 
select definition + char(10) + 'go' + char(10) 
    from sys.sql_modules c 
    join sys.objects o 
    on c.object_id = o.object_id 
    join #views o2 
    on o.object_id = o2.object_id 

Notez que #views est peuplée plus tôt dans le script avec une liste de vues à vider. Pour sélectionner un schéma particulier (également à partir du script)

select o.name 
     ,o.object_id 
    into #views 
    from sys.objects o 
    join sys.schemas s 
    on s.schema_id = o.schema_id 
where o.type in ('V') 
    and s.name = @schema 

Pour obtenir des procédures stockées, remplacer « P »; pour obtenir des fonctions de remplacement « FN » ou « TF »

Dans la base de données master les définitions pour les procédures stockées système vivent dans sys.system_views, « sys.system_objects , 'sys.system_columns et sys.system_sql_modules. Les requêtes dans le script de reverse engineering peuvent être adaptées assez facilement pour extraire les définitions des éléments du système en utilisant ces tables.

+0

Les informations contenues dans syscomments sont-elles volatiles de sorte qu'il est déconseillé de récupérer la définition? – cmsjr

+0

Probablement pas, mais syscomments est une fonctionnalité de compatibilité ascendante pour SQL2000 et peut durer ou non indéfiniment (en pratique, il sera probablement encore là pour un moment). En outre, l'OP semble après les définitions des sprocs et des vues du système, qui vivent dans un ensemble différent de tables. – ConcernedOfTunbridgeWells

+0

Syscomments ne doit pas être utilisé car il affiche uniquement des fragments de 8000 octets du texte source. Ensuite, vous devez les enchaîner ou faire quelque chose d'autre pour gérer les morceaux intelligemment. – ErikE

0

Si vous voulez juste voir le texte qui définit une procédure:

Faites un clic droit de la procédure stockée, et choisissez Modifier. Cela montrera le SQL qui définit la procédure stockée. Ou: cliquez avec le bouton droit de la souris sur Script Stored Procedure as, CREATE To, nouvelle fenêtre de l'éditeur de requête.

Les autres réponses sont plus avancés, mais je pensais que peut-être vous posiez une question simple :)

0

Voici comment lister toutes les vues de gestion dynamique:

SELECT * FROM sysobjects 
WHERE name LIKE 'dm_%' 
order by name 

Malheureusement, si vous exécutez sp_helptext sur ceux-ci ne vous donnent pas grand-chose.Par exemple,

exec sp_helptext N'sys.dm_os_sys_info' 

Retours:

CREATE VIEW sys.dm_os_sys_info AS 
    SELECT * 
    FROM OpenRowset(TABLE SYSINFO) 

Tous ceux que j'essayées ont donné le même résultat.

Questions connexes