Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment sauvegarder ou créer une nouvelle table à partir d'une table SQL Server existante dans SQL Server - Tutoriel SQL Server / TSQL Partie 105

Scénario :

Vous travaillez en tant que développeur SQL Server, vous devez fournir des scripts de mise à jour ou de suppression pour mettre à jour ou supprimer des données d'une table. Vous souhaitez effectuer la sauvegarde de ces enregistrements ou si la table est petite, vous souhaiterez peut-être sauvegarder la table entière avant de exécuter des instructions de mise à jour ou de suppression.

Comment sauvegarderiez-vous une table entière ou uniquement les enregistrements sur lesquels vous devez exécuter des instructions de mise à jour ou de suppression ?

Solution :

SQL Server ne fournit pas de sauvegarde au niveau de la table. Lorsque nous disons que nous voulons prendre la sauvegarde de la table, nous parlons de faire une copie de la table existante avec des enregistrements.
Disons si nous avons dbo.Customer Table avec peu d'enregistrements et que nous voulons créer une table de sauvegarde dbo.Customber_Bkp_TodayDate, nous pouvons utiliser le script ci-dessous
Créez d'abord la table dbo.Customer avec des exemples d'enregistrements
UTILISEZ yourDatabaseNameGoCreate Table dbo.Customer(Id int identity(1,1),FName VARCHAR(50) ,LName VARCHAR(50),Age int,DOB Date,Salary Numeric(6,2))--Utilisez l'Insert Into with Values ​​single StatementInsert into dbo.CustomerValues('Aamir','Shahzad',36,'1980-01 -01',5000.50),('Raza','M',33,'1983-03-03',4900.34),('John','Smith',26,'1990-04-05',5000.50) 
 
 
 Créons maintenant la table de sauvegarde dbo.Customber_Bkp_TodayDate avec tous les enregistrements présents dans dbo.Customer.
Sélectionnez * dans dbo.Customber_Bkp_20160507 à partir de dbo.Customer


Pour créer une nouvelle table avec des enregistrements, vous devez utiliser Into NewTable à partir de OldTable comme indiqué ci-dessus.
Si nous ne souhaitons copier que les enregistrements où FName='Aamir', notre requête ressemblera à ci-dessous.
Sélectionnez * dans dbo.Customber_Bkp_20160507_OnlyAamir de dbo.Customer où FName='Aamir'
 
Exécutez les scripts ci-dessus et vérifiez les tables si elles ont été créées avec les enregistrements requis.
Comment sauvegarder des enregistrements dans une nouvelle table à partir d'une table SQL Server existante dans SQL Server


Scripts utilisés dans la démo vidéo :
--Prenez la sauvegarde ou créez une table pour tous les enregistrementsSélectionnez * dans [YourDBName].dbo.Customer_20160510 de [dbo].[Customer] --Créer une table pour les enregistrements sélectionnésSélectionnez * dans [YourDBName].dbo.Customer_20160510_TwoRecords from [dbo].[Customer]where id<=2--Vérifiez si la table est créée avec succèsSelect * From [YourDBName].dbo.Customer_20160510_TwoRecordsSelect * from [dbo ].[Client]--Mettre à jour les enregistrements dans la table actuelleupdate [dbo].[Client]set LName=LName+' Test'where id<=2--Mettre à jour les enregistrements dans la table actuelle à partir de la sauvegarde tableupdate d set d.LName=s.LNamefrom [YourDBName].dbo.Customer_20160510_TwoRecords sinner join [dbo].[Customer] don s.id=d.id
 


Démo vidéo :comment créer rapidement une nouvelle table à partir d'une table existante avec des données dans SQL Server