Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Нов начин за копиране на файлове в SQL Server 2019

Две нови съхранени процедури, въведени в SQL Server 2019, са sys.xp_copy_file и sys.xp_copy_files , което ви позволява да копирате файлове.

Преди SQL Server 2019 ще трябва да използвате xp_cmdshell , който създава командна обвивка на Windows и предава низ за изпълнение. Новите съхранени процедури, въведени в SQL Server 2019, ви позволяват да копирате файлове, без да разчитате на xp_cmdshell .

Пример 1 – Копиране на 1 файл

Можете да използвате sys.xp_copy_file за да копирате един файл. Използването на тази съхранена процедура ви позволява също да наименувате новия файл.

Пример за Linux:

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

Успешно стартирах този код на моя Mac, който използва SQL Server 2019 на Linux.

За да копирате файлове в система на Windows, ще трябва да използвате конвенцията за пътя на Windows.

Пример за Windows:

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

Пример 2 – Копиране на множество файлове

Можете да използвате sys.xp_copy_files за копиране на множество файлове.

Пример за Linux:

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

Тук съм в същата папка като предишния пример. В този случай копирах всички файлове, които започват с albums и завършва с .csv . Използвам звездичката (* ) заместващ знак, за да изберете файлове, които може да включват други знаци след albums част.

Този пример копира файловете в /var/opt/mssql/data/samples/final директория.

Пример за Windows:

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

Изтриване на файлове

SQL Server 2019 също въведе sys.xp_delete_files съхранена процедура, която ви позволява да изтривате файлове. Вижте Как да изтриете файлове в SQL Server 2019 за примери за изтриване на файловете, създадени в тази статия.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да предам параметри с стойност на таблица от java към запаметена процедура на sql сървър?

  2. Как работи FOR XML PATH('') при конкатенация на редове

  3. PHP фатална грешка:Извикване на недефинирана функция mssql_connect()

  4. Свързване на SQL Server към база данни на Java

  5. Как програмно да задам низа за връзка за Entity-Framework Code-First?