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

Подреждане в SQL Server

Открих, че мога да запазя реда на изходните таблици с помощта на BULK INSERT във файл, последвано от добавяне на самоличност.

Дадена е таблица, разделена с табулатори, C:\MyTable.txt , където умишлено преместих редове без ред:

FileName    FileType
wmsetup log
bar txt
wmsetup10   log
WMSysPr9    prx
WMSysPrx    prx
Wudf01000Inst   log
xpsp1hfm    log
_default    pif
0   log
002391_ tmp
005766_ tmp

Изпълних следното и запазих реда на текстовите файлове в SQL Server:

IF EXISTS(
    SELECT 1
    FROM sys.tables t
    INNER JOIN sys.schemas s on s.schema_id=t.schema_id
    WHERE t.name='myTable'
    AND t.[type]='U'
    AND s.name='dbo'
)
DROP TABLE myTable
GO

CREATE TABLE dbo.myTable(FileName VARCHAR(80), FileType VARCHAR(30))
GO

BULK INSERT myTable FROM 'C:\MyTable.txt' WITH (
firstrow=2
, fieldterminator='\t'
, rowterminator='\n'
)
GO

ALTER TABLE myTable ADD ID INT IDENTITY(1,1)
GO

SELECT * FROM myTable
GO

Резултат:

FileName        FileType ID
--------------- -------- -----------
wmsetup         log      1
bar             txt      2
wmsetup10       log      3
WMSysPr9        prx      4
WMSysPrx        prx      5
Wudf01000Inst   log      6
xpsp1hfm        log      7
_default        pif      8
0               log      9
002391_         tmp      10
005766_         tmp      11



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

  2. Разлика между конвертирането на дата и час в MSExcel и SQL Server

  3. SqlBulkCopy от списък<>

  4. СЛИВАНЕ към целеви колони с помощта на изходни редове?

  5. Изключение за максимални параметри на SqlCommand при 2099 параметъра