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

SQL няма да вмъкне нулеви стойности с BULK INSERT

Според:

http://msdn.microsoft.com/en-us/library/ms187887 .aspx

null стойности могат да бъдат вмъкнати, като имате празно поле във вашия файл.

Примерният файл беше:

1,,DataField3
2,,DataField3

Примерен метод за импортиране на файлове, запазващи нули е:

USE AdventureWorks;
GO
BULK INSERT MyTestDefaultCol2
FROM 'C:\MyTestEmptyField2-c.Dat'
WITH (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = ',',
    KEEPNULLS
);
GO

Разбира се, това означава, че ще трябва да промените вашите "NULL"s на "", и всички празни низове, които искате като празен низ, ще бъдат интерпретирани като нули, но може да е достатъчно, за да започнете? Бих си представил да запазите вашите празни низови колони, от които ще трябва да се променят

field1,,field2

до

field1,"",field2

като пример



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Случайна стойност за колона DATETIME

  2. Генериране на **голи** CREATE TABLE и CREATE PROC изрази в SQL Server

  3. Множество реда до една стойност, разделена със запетая, в Sql Server

  4. MS SQL ping външен сървър

  5. Разрешението EXECUTE беше отказано на обекта 'xxxxxxx', база данни 'zzzzzzz', схема 'dbo'