215 votes

Fonctions cachées de SQL Server

Ce sont des fonctions cachées de SQL Server?

Par exemple, les sans-papiers du système des procédures stockées, des astuces pour faire des choses qui sont très utiles, mais pas assez documenté?


Réponses

Merci à tous pour toutes les excellentes réponses!

Procédures Stockées

  • sp_msforeachtable: Exécute une commande avec"? " a remplacé avec chaque nom de table (v6.5 et plus)
  • sp_msforeachdb: Exécute une commande avec"? " a remplacé avec chaque nom de base de données (v7)
  • sp_who2: tout comme sp_who, mais avec beaucoup plus d'infos pour le dépannage des blocs (v7)
  • sp_helptext: Si vous voulez le code d'une procédure stockée, de la vue et de l'UDF
  • sp_tables: retourne la liste de toutes les tables et les vues de base de données dans le champ.
  • sp_stored_procedures: retourne la liste de toutes les procédures stockées
  • xp_sscanf: Lit les données à partir de la chaîne dans l'argument emplacements spécifiés par chaque argument de format.
  • xp_fixeddrives:: Trouver le disque fixe avec plus d'espace libre
  • sp_help: Si vous voulez connaître la structure de la table, les index et les contraintes d'une table. Aussi les vues et les fonctions définies par l'utilisateur. Le raccourci est Alt+F1

Extraits de

  • Retourner des lignes dans un ordre aléatoire
  • Tout Utilisateur de base de données Objets par Date de Dernière modification
  • La Date De Retour Seulement
  • Trouver des enregistrements dont la date se situe quelque part à l'intérieur de la semaine en cours.
  • Trouver des enregistrements dont la date s'est produite la semaine dernière.
  • Renvoie la date du début de la semaine en cours.
  • Renvoie la date du début de la semaine dernière.
  • Voir le texte d'une procédure qui a été déployé sur un serveur
  • Déposer toutes les connexions à la base de données
  • Table De Somme De Contrôle
  • La Ligne De La Somme De Contrôle
  • Abandon de toutes les procédures dans une base de données
  • Re-mapper l'Id de connexion correctement après la restauration
  • Appel de Procédures Stockées à partir d'une instruction INSERT
  • Trouvez Des Procédures Par Mot-Clé
  • Abandon de toutes les procédures dans une base de données
  • Requête le journal des transactions d'une base de données par programmation.

Fonctions

  • HashBytes()
  • EncryptByKey
  • PIVOT de commande

Divers

  • Chaîne de connexion extras
  • TableDiff.exe
  • Des déclencheurs pour des Événements d'ouverture de session (Service Pack 2)
  • L'amélioration des performances avec persistantes-calculée-colonnes (pcc).
  • DEFAULT_SCHEMA paramètre dans sys.database_principles
  • Paramétrage Forcé
  • Le Format De Stockage Vardecimal
  • Comprendre les requêtes les plus populaires en quelques secondes
  • Les Bases De Données Partagée Évolutive
  • Table/Procédure Stockée de la fonctionnalité de Filtre SQL Management Studio
  • Indicateurs de suivi
  • Numéro après un GO répète le lot
  • De sécurité à l'aide de schémas
  • Le chiffrement à l'aide intégrée dans les fonctions de chiffrement, les vues et les tables de base avec des déclencheurs

91voto

GilM Points 2493

Dans Management Studio, vous pouvez placer un nombre après que le marqueur de fin de lot GO provoque le lot à être répété ce nombre de fois :

Imprime « X » 10 fois. Cela peut vous sauver de fastidieux copier/coller lorsque vous faites des choses répétitives.

70voto

marc_s Points 321990

Beaucoup de développeurs SQL Server ne semble pas savoir à propos de la clause OUTPUT (SQL Server 2005 et versions plus récentes) sur la SUPPRESSION, d'INSERTION et de mise à JOUR de la déclaration.

Il peut être très utile de connaître les lignes qui ont été Insérées, mises à Jour ou Supprimées, et la clause OUTPUT permet de faire cela très facilement - il permet l'accès à la "virtuel" tables appelés inserted et deleted (comme dans les déclencheurs):

DELETE FROM (table)
OUTPUT deleted.ID, deleted.Description
WHERE (condition)

Si vous êtes à l'insertion de valeurs dans une table qui a un INT IDENTITÉ champ de clé primaire, avec la SORTIE de la clause, vous pouvez obtenir l'insertion de nouvelles ID:

INSERT INTO MyTable(Field1, Field2)
OUTPUT inserted.ID
VALUES (Value1, Value2)

Et si vous êtes à la mise à jour, il peut être très utile de savoir ce qui a changé - dans ce cas, inserted représente la nouvelle valeur (après la mise à JOUR), tandis que l' deleted fait référence à l'ancien valeurs avant la mise à JOUR:

UPDATE (table)
SET field1 = value1, field2 = value2
OUTPUT inserted.ID, deleted.field1, inserted.field1
WHERE (condition)

Si beaucoup d'infos seront retournés, la sortie de SORTIE peut également être redirigé vers une table temporaire ou une variable de table (OUTPUT INTO @myInfoTable).

Très utile et très peu connu!

Marc

52voto

Mitch Wheat Points 169614

``: Exécute une commande avec ' ?' remplacé par le nom de chaque table. par exemple

Vous pouvez émettre jusqu'à 3 commandes pour chaque table

En outre,``

51voto

C. Lawrence Wenham Points 11271

Chaîne de connexion extras:

MultipleActiveResultSets=true;

Cela rend ADO.Net 2.0 et au-dessus de lecture multiples, avant uniquement en lecture seule d'ensembles de résultats sur une seule connexion de base de données, ce qui peut améliorer les performances si vous êtes en train de faire beaucoup de lecture. Vous pouvez le faire même si vous êtes en train de faire un mélange de types de requête.

Nom De L'Application=MyProgramName

Maintenant, quand vous désirez voir une liste des connexions actives en interrogeant la table sysprocesses, le nom de votre programme apparaît dans la program_name colonne à la place de ".Net Fournisseur De Données SqlClient"

33voto

Sklivvz Points 16412

TableDiff.exe

  • Tableau Différence outil vous permet de découvrir et de concilier les différences entre une source et une destination de table ou une vue. Tablediff Utilitaire peut signaler les différences sur le schéma et les données. La fonctionnalité la plus populaire de tablediff est le fait qu'il peut générer un script que vous pouvez exécuter sur la destination qui permettra de réconcilier les différences entre les tables.

Lien

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X