Je crée une nouvelle table avec des contraintes de clé primaire et un index non clusterisé dans cette table.
Je sais, je voudrais créer une autre table avec la même structure et les mêmes valeurs ainsi que les clés et les index.
create table Dummy (id integer ,name varchar(20),salary integer
Constraint PK_Con_id primary key(id))
insert into Dummy values(11,'AAA',1000);
insert into Dummy values(12,'BBB',2000);
insert into Dummy values(13,'CCC',3000);
insert into Dummy values(14,'DDD',4000);
select * from Dummy;
create nonclustered index IX_Name
on Dummy(Name)
Maintenant, je crée une table Dmy
mais les clés et les contraintes ne se reflètent pas dans la table Dmy
dans SQL Server 2008 R2.
SELECT *
INTO Dmy
FROM Dummy
SELECT INTO ne le fera pas pour vous, car tout en conservant les noms de colonne et les types de données, il ne conserve pas beaucoup d'autres aspects de la table, tels que les contraintes, les index, etc. La seule chose vraiment conserve en dehors des colonnes se trouve la propriété IDENTITY si l'une des colonnes l'a.
Cliquez avec le bouton droit sur la table d'origine dans l'Explorateur d'objets et sélectionnez Table de script comme> Créer vers> Nouvelle fenêtre de requête. Vous devez avoir un script CREATE TABLE pour la table d'origine, y compris toutes les contraintes, etc. Notez que vous devrez peut-être définir certains de ces paramètres (Outils> Options> Explorateur d'objets SQL Server> Script) sur true afin d'obtenir tous les les attributs de table que vous voulez, donc cela peut prendre quelques essais et erreurs:
Maintenant, modifiez simplement ce script à la main pour spécifier le nouveau nom de table et assurez-vous d'ajuster tous les noms de contrainte et d'index de manière à ce qu'ils soient uniques (la quantité de travail dépendra de la convention de dénomination établie ou si vous prenez juste ce que SQL Server va vous lancer).
Tout peut être fait dans SQL Server Management Studio.
L'option Script Table As génère un code de création pour les clés et contraintes primaires et étrangères. Il ne crée pas de script pour les index, vous devez donc le faire dans une autre étape. , je suggère d'étendre tous les nœuds de type d'objet dans SSMS Object Explorer.
Pour créer un script pour la structure de la table, les clés primaires et étrangères et les contraintes
Le script généré sera affiché dans l'onglet Éditeur de requête. Assurez-vous de modifier les noms de table, de clé primaire et étrangère et de contrainte, car ces noms doivent être uniques.
Sinon, vous obtiendrez un message d'erreur indiquant quelque chose comme 'Il y a déjà un objet nommé' Address 'dans la base de données.' , ou 'L'opération a échoué car un index ou des statistiques portant le nom' AK_Address_rowguid 'existent déjà sur la table' Person.Address '.'
Pour créer un script pour un index
Suivez les étapes similaires à celles ci-dessus:
Pour créer un script INSERT INTO pour les données
4.Dans l'onglet Définir l'option de script s, cliquez sur Avancé et assurez-vous que l'option Types de données à script est définie sur Données uniquement
Remarque: Si vous sélectionnez Schéma et données le script de schéma généré sera identique au script généré dans la première méthode de cette réponse.
5.Mettez à jour le nom de la table avec le nom de la nouvelle table avant d'exécuter le script
FOR Schema - Table, contraintes et clés
pour l'index
POUR les données