150 votes

Comment créer une table SQL sous un schéma différent ?

C'est à partir de SQL Server 2008, ssms

Lorsque je crée une table, elle est créée sous dbo.

Je voudrais la créer sous un schéma différent, mais lorsque j'utilise la boîte de dialogue "New Table", je ne trouve jamais le champ où spécifier cela.

267voto

adrianbanks Points 36858
  1. Cliquez avec le bouton droit de la souris sur le nœud des tables et choisissez New Table...
  2. Lorsque le concepteur de tableaux est ouvert, ouvrez la fenêtre des propriétés (vue -> fenêtre des propriétés).
  3. Vous pouvez modifier le schéma dans lequel la table sera créée en choisissant un schéma dans la fenêtre des propriétés.

1 votes

Comment le faire de manière programmatique, c'est-à-dire en créant une table SUSER_SNAME().[MyTableName] mais qui fonctionne réellement. En outre, est-ce une bonne façon de stocker des variables globales temporaires pour permettre à différentes applications de communiquer entre elles ?

1 votes

Ok merci mais je voulais dire avoir le nom du schéma comme une variable selon l'utilisateur qui l'exécute. Je l'ai fait avec un peu de SQL dynamique, mais j'ai ensuite trouvé un meilleur moyen de placer ces variables dans une table sur la machine de l'utilisateur.

2 votes

@adrianbanks très gentil de votre part de les orienter dans la bonne direction monsieur !

54voto

Shaun F Points 1049

Essayez d'exécuter CREATE TABLE [schemaname].[tableName]; GO;

Cela suppose que le nom du schéma existe dans votre base de données. Veuillez utiliser CREATE SCHEMA [schemaname] si vous devez également créer un schéma.

EDIT : mis à jour pour noter que SQL Server 11.03 exige que ce soit la seule déclaration dans le lot.

2 votes

Oui, je me rends compte que je peux faire ça, je me demandais juste si la version de dialogue avait une option quelque part pour faire ça.

1 votes

J'ai essayé la même chose, mais ça ne marche pas, est-ce que je fais quelque chose de mal ? O cela fonctionne uniquement dans MSSQL 2012 ?

8 votes

@PankajParkar : Cela ne fonctionnera pas si le schéma n'existe pas. Créez d'abord le schéma en utilisant create schema [schema_Name] suivi de la requête ci-dessus.

15voto

Aftab Uddin Points 21

                           créer un schéma de base de données dans SQL Server 2008
1. Naviguez jusqu'à Security > Schemas
2. Cliquez avec le bouton droit de la souris sur Schemas et sélectionnez New Schema.
3. Complétez les détails dans l'onglet Général pour le nouveau schéma. Par exemple, le nom du schéma est "MySchema" et le propriétaire du schéma est "Admin".
4. Ajoutez des utilisateurs au schéma selon les besoins et définissez leurs autorisations :
5. Ajoutez les propriétés étendues (via l'onglet Propriétés étendues).
6. Cliquez sur OK.
                           Ajoutez une table au nouveau schéma "MySchema".
1. Dans l'Explorateur d'objets, cliquez avec le bouton droit de la souris sur le nom de la table et sélectionnez "Design" :
2. Modification du schéma de base de données d'une table dans SQL Server Management Studio
3. À partir de la vue Design, appuyez sur F4 pour afficher la fenêtre Propriétés.
4. Dans la fenêtre Propriétés, remplacez le schéma par le schéma souhaité :
5. Fermez Design View en faisant un clic droit sur l'onglet et en sélectionnant "Fermer" :
6. Vue de la conception de fermeture
7. Cliquez sur "OK" lorsque vous êtes invité à enregistrer
8. Votre table a maintenant été transférée dans le schéma "MySchema".

Rafraîchir la vue du navigateur d'objets Pour confirmer les changements
Terminé

1 votes

Très utile pour le processus précédent de création de schéma de base de données. Merci.

14voto

AliP Points 86

Appuyez sur F4 et vous obtiendrez ce que vous cherchez.

4voto

Brannon Points 12633

Lorsque je crée une table en utilisant SSMS 2008, je vois 3 volets :

  • Le concepteur de colonnes
  • Propriétés des colonnes
  • Les propriétés de la table

Dans le volet des propriétés de la table, il y a un champ : Schema qui vous permet de sélectionner le schéma.

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