sql >> Database >  >> RDS >> Sqlserver

Nieuwe manier om bestanden te kopiëren in SQL Server 2019

Twee nieuwe opgeslagen procedures geïntroduceerd in SQL Server 2019 zijn sys.xp_copy_file en sys.xp_copy_files , waarmee u bestanden kunt kopiëren.

Vóór SQL Server 2019 zou u xp_cmdshell . moeten gebruiken , die een Windows-opdrachtshell voortbrengt en een tekenreeks doorgeeft voor uitvoering. Met de nieuwe opgeslagen procedures die in SQL Server 2019 zijn geïntroduceerd, kunt u bestanden kopiëren zonder afhankelijk te zijn van xp_cmdshell .

Voorbeeld 1 – Kopieer 1 bestand

U kunt sys.xp_copy_file . gebruiken om een ​​enkel bestand te kopiëren. Door deze opgeslagen procedure te gebruiken, kunt u ook het nieuwe bestand een naam geven.

Voorbeeld op Linux:

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

Ik heb deze code met succes uitgevoerd op mijn Mac, die SQL Server 2019 op Linux gebruikt.

Om bestanden naar een Windows-systeem te kopiëren, moet u de Windows-padconventie gebruiken.

Voorbeeld op Windows:

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

Voorbeeld 2 – Meerdere bestanden kopiëren

U kunt sys.xp_copy_files . gebruiken om meerdere bestanden te kopiëren.

Voorbeeld op Linux:

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

Hier ben ik in dezelfde map als het vorige voorbeeld. In dit geval heb ik alle bestanden gekopieerd die beginnen met albums en eindigen met .csv . Ik gebruik de asterisk (* ) jokerteken om bestanden te selecteren die mogelijk andere tekens bevatten na de albums onderdeel.

Dit voorbeeld kopieert de bestanden naar de /var/opt/mssql/data/samples/final directory.

Voorbeeld op Windows:

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

Bestanden verwijderen

SQL Server 2019 introduceerde ook de sys.xp_delete_files opgeslagen procedure, waarmee u bestanden kunt verwijderen. Zie Bestanden verwijderen in SQL Server 2019 voor voorbeelden van het verwijderen van de bestanden die in dit artikel zijn gemaakt.


  1. Hoe een tabel te maken met behulp van een selectiequery in SQL Server?

  2. Hoe het mysql root-wachtwoord opnieuw in te stellen?

  3. Uitdagingsoplossingen voor generatorreeksen - deel 1

  4. een lijst imploderen voor gebruik in een python MySQLDB IN-clausule