sql >> データベース >  >> RDS >> Sqlserver

SQLServerの既存のSQLServerテーブルから新しいテーブルをバックアップまたは作成する方法-SQLServer/TSQLチュートリアルパート105

    シナリオ:

    SQL Server開発者として作業している場合、テーブルからデータを更新または削除するには、更新または削除スクリプトを提供する必要があります。これらのレコードのバックアップを取るか、テーブルが小さい場合は、テーブル全体をバックアップする必要があります。更新または削除ステートメントを実行します。

    テーブル全体、または更新または削除ステートメントを実行する必要があるレコードのみをどのようにバックアップしますか?

    解決策:

    SQL Serverは、テーブルレベルのバックアップを提供しません。テーブルのバックアップを取りたいと言うときは、レコードを含む既存のテーブルのコピーを作成することを意味します。
    たとえば、レコードが少ないdbo.Customer Tableがあり、バックアップテーブルを作成する場合を考えてみましょう。 dbo.Customber_Bkp_TodayDate、以下のスクリプトを使用できます
    最初にサンプルレコードを使用してdbo.Customerテーブルを作成します
    USE yourDatabaseName
    Go
    Create Table dbo.Customer(
    Id int identity(1,1),
    FName VARCHAR(50),
    LName VARCHAR(50),
    Age int,
    DOB Date,
    Salary Numeric(6,2))
    
    --Use the Insert Into with Values single Statement
    Insert into dbo.Customer
    Values('Aamir','Shahzad',36,'1980-01-01',5000.50),
    ('Raza','M',33,'1983-03-03',4900.34),
    ('John','Smith',26,'1990-04-05',5000.50)
     
     
     次に、dbo.Customerに存在するすべてのレコードを使用してdbo.Customber_Bkp_TodayDateバックアップテーブルを作成しましょう。
    Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


    レコードを含む新しいテーブルを作成するには、上記のようにOldTableからIntoNewTableを使用する必要があります。
    FName ='Aamir'のレコードのみをコピーする場合、クエリは次のようになります。以下。
    Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
     
    上記のスクリプトを実行し、必要なレコードで作成されているかどうかテーブルを確認します。
    SQLServerの既存のSQLServerテーブルから新しいテーブルにレコードをバックアップする方法


    ビデオデモで使用されるスクリプト:
    --Take the backup or create table for all records
    Select * into [YourDBName].dbo.Customer_20160510  from [dbo].[Customer]
    
    --Create table for selected records
    Select * into [YourDBName].dbo.Customer_20160510_TwoRecords from [dbo].[Customer]
    where id<=2
    
    --Check if table is created successfully
    Select * From [YourDBName].dbo.Customer_20160510_TwoRecords
    
    Select * from [dbo].[Customer]
    
    --Update Records in current table
    update [dbo].[Customer]
    set LName=LName+' Test'
    where id<=2
    
    
    --Update records in current table from backup table
    update d 
    set d.LName=s.LName
    from [YourDBName].dbo.Customer_20160510_TwoRecords s
    inner join [dbo].[Customer] d
    on s.id=d.id
     


    ビデオデモ:SQLServerのデータを使用して既存のテーブルから新しいテーブルをすばやく作成する方法


    1. DockerComposeでpostgresコンテナのサーバーポートを変更する

    2. Mysql:特定の値を持つグループを選択する方法は?

    3. Where句に応じてSQLServerクエリがタイムアウトする

    4. Oracle列ではHQLがnullで!=null