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

Масово вмъкване на полета с фиксирана ширина

Мисля, че трябва да дефинирате файл с формат

напр.

BULK INSERT TableA FROM 'C:\Temp\TableA.txt'
WITH FORMATFILE = 'C:\Temp\Format.xml'
SELECT * FROM TableA

За да работи това обаче, ви е необходим форматиран файл, очевидно.

Вижте тук за обща информация относно създаването на такъв:

Създаване на файл с формат

По едно предположение, от разглеждането на схемата, нещо подобно може да го направи:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
  <FIELD ID="1" xsi:type="CharFixed" LENGTH="3"/>
  <FIELD ID="2" xsi:type="CharFixed" LENGTH="3"/>
</RECORD>
<ROW>
  <COLUMN SOURCE="1" NAME="Field1" xsi:type="SQLCHAR" LENGTH="3"/>
  <COLUMN SOURCE="2" NAME="Field2" xsi:type="SQLCHAR" LENGTH="3"/>
</ROW>
</BCPFORMAT>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дали един израз на SQL Server е атомичен и последователен?

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

  3. SQL Server:Неизправност на комуникационната връзка Изисква се SSL (неуспешно получаване на пакет)

  4. Промяна на съществуваща колона в изчислена колона в SQL Server (пример за T-SQL)

  5. Инсталирайте SQL Server 2016