sql >> Database teknologi >  >> RDS >> Sqlserver

Ny måde at kopiere filer i SQL Server 2019

To nye lagrede procedurer introduceret i SQL Server 2019 er sys.xp_copy_file og sys.xp_copy_files , som giver dig mulighed for at kopiere filer.

Før SQL Server 2019 skal du bruge xp_cmdshell , som afføder en Windows-kommandoskall og sender en streng til eksekvering. De nye lagrede procedurer introduceret i SQL Server 2019 giver dig mulighed for at kopiere filer uden at stole på xp_cmdshell .

Eksempel 1 – Kopier 1 fil

Du kan bruge sys.xp_copy_file at kopiere en enkelt fil. Ved at bruge denne lagrede procedure kan du også navngive den nye fil.

Eksempel på Linux:

EXEC master.sys.xp_copy_file
'/var/opt/mssql/data/samples/albums.csv',
'/var/opt/mssql/data/samples/albums2.csv';

Jeg kørte med succes denne kode på min Mac, som bruger SQL Server 2019 på Linux.

For at kopiere filer på et Windows-system skal du bruge Windows-stikonventionen.

Eksempel på Windows:

EXEC master.sys.xp_copy_file
'D:\mssql\data\samples\albums.csv',
'D:\mssql\data\samples\albums2.csv';

Eksempel 2 – Kopier flere filer

Du kan bruge sys.xp_copy_files for at kopiere flere filer.

Eksempel på Linux:

EXEC master.sys.xp_copy_files
'/var/opt/mssql/data/samples/albums*.csv',
'/var/opt/mssql/data/samples/final';

Her er jeg i samme mappe som det forrige eksempel. I dette tilfælde kopierede jeg alle filer, der starter med albums og afslutte med .csv . Jeg bruger stjernen (* ) jokertegn for at vælge filer, der kan indeholde andre tegn efter albums del.

Dette eksempel kopierer filerne til /var/opt/mssql/data/samples/final bibliotek.

Eksempel på Windows:

EXEC master.sys.xp_copy_file
'D:\mssql\data\samples\albums*.csv',
'D:\mssql\data\samples\final';

Sletning af filer

SQL Server 2019 introducerede også sys.xp_delete_files lagret procedure, som giver dig mulighed for at slette filer. Se Sådan sletter du filer i SQL Server 2019 for eksempler på sletning af filer, der er oprettet i denne artikel.


  1. Group_concat MySQL-funktionens ækvivalent i Oracle

  2. SQL Server:Hvordan får man en fremmednøglereference fra informationsskema?

  3. Skift datatype for en kolonne til seriel

  4. Opret en sammenkædet server mellem to Docker-containere, der kører SQL Server (T-SQL-eksempel)