Qu'est-ce qu'une requête qui me montrera la définition complète, y compris les index et les clés d'une table SQL Server? Je veux une requête pure - et je sais que SQL Studio peut me donner cela, mais je suis souvent sur des ordinateurs «sauvages» qui n'ont que les applications les plus simples et je n'ai pas le droit d'installer Studio. Mais SQLCMD est toujours une option.
MISE À JOUR: J'ai essayé sp_help, mais cela ne donne qu'un seul enregistrement qui montre le nom, le propriétaire, le type et Created_Datetime. Y a-t-il autre chose qui me manque avec sp_help?
Voici ce que j'appelle:
aéroports sp_help
Notez que je veux vraiment le DDL qui définit la table.
sql-server
tsql
Daniel Williams
la source
la source
sp_help
c'est qu'il renvoie plusieurs ensembles de résultats. Vous décrivez les colonnes renvoyées par le premier jeu de résultats.Réponses:
Il n'y a pas de moyen simple de renvoyer le DDL. Cependant, vous pouvez obtenir la plupart des détails des vues de schéma d'information et des vues système .
la source
sp_columns
comme je l'ai mentionné dans ma réponse. Si vous voulez des informations sur les FK, exécutezsp_fkeys
. Si vous voulez connaître les index, exécutezsp_statistics
.Avez-vous essayé sp_help?
la source
Visitez http://www.stormrage.com/SQLStuff/sp_GetDDL_Latest.txt .
Vous trouverez le code de
sp_getddl
procédure pour SQL Server. Le but de la procédure est de créer un script pour toute table, table temporaire ou objet.USAGE:
ou
ou
ou
Je l'ai testé sur SQL Server 2012 et il fait un excellent travail.
Je ne suis pas l'auteur de la procédure. Toute amélioration que vous y apportez est envoyée à Lowell Izaguirre ([email protected]).
la source
Le moyen le plus simple et le plus rapide auquel je puisse penser serait d'utiliser sp_help
sp_help 'TableName'
la source
Utilisez cette petite application de ligne de commande Windows qui obtient le
CREATE TABLE
script (avec des contraintes) pour n'importe quelle table. Je l'ai écrit en C #. Compilez-le et transportez-le sur une clé USB. Peut-être que quelqu'un peut le porter sur Powershell.la source
la source
Cela renverra les colonnes, les types de données et les index définis sur la table:
Cela renverra les déclencheurs définis sur la table:
la source
Depuis SQL 2012, vous pouvez exécuter l'instruction suivante:
Si vous entrez une instruction de sélection complexe (jointures, sous-sélections, etc.), elle vous donnera la définition du jeu de résultats. C'est très pratique si vous devez créer une nouvelle table (ou table temporaire) et que vous ne voulez pas vérifier chaque définition de champ manuellement.
https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-describe-first-result-set-transact-sql
la source
Tapez simplement le nom de la table et sélectionnez-le et appuyez sur ATL + F1
Dites que le nom de votre table
Customer
ouvre une nouvelle fenêtre de requête , tapez et sélectionnez le nom de la table et appuyez sur ALT + F1Il montrera la définition complète de la table.
la source
Une variante de la réponse de @Anthony Faull pour ceux qui utilisent LINQPad:
Vous devrez référencer 2 assemblys:
Et ajoutez des références d'espace de noms comme mentionné dans l'extrait d'Anthony.
la source
Je sais que c'est une vieille question, mais exactement ce que je cherchais. Parce que je souhaite créer un script par lots sur certaines tables, j'ai réécrit le code C # d'Anthony Faull pour PowerShell.
Celui-ci utilise la sécurité intégrée:
Et ici avec nom d'utilisateur et mot de passe:
la source
Essayez la procédure stockée sp_help.
sp_help <>
la source
En complément de la réponse de Barry. Le sp_help peut également être utilisé seul pour itérer tous les objets dans une base de données particulière. Vous avez également sp_helptext pour votre arsenal, qui script des éléments programmatiques, comme les procédures stockées.
la source
Une autre méthode consiste à exécuter la procédure sp_columns .
la source
la source
"Notez que je veux vraiment le DDL qui définit la table."
utilisez pg_dump:
Il vous donne la définition de table (il
-s
s'agit uniquement d'un schéma, pas de données) d'une certaine table (-t
nom de la table ) dans la base"dbname"
de données en SQL brut. De plus, vous obtiendrez des informations sur la séquence, la clé primaire et la contrainte. La sortie que vous pouvez - peut-être après vérification et édition selon vos besoins - être réintroduite dans (la même ou une autre) base de données Postgres:C'est pour UNIX / Linux, mais je suis sûr qu'un pg_dump existe également pour Windows.
la source