Мастер импорта SQL не может сопоставить tinyint - PullRequest
0 голосов
/ 28 февраля 2012

Я создал таблицу с именем test2 следующим образом в SQL Server 2008 R2

id ||идентификатор пользователя ||время

tinyint uniqueidentifier time (7)

Я создал файл .csv для того же самого файла, который содержит одну строку

id ||идентификатор пользователя ||time (7)

1 b64d51a8-852f-40ea-ab4c-080df747214b 00: 00: 00

Теперь я использую мастер импорта SQL, чтобы вставить эту строку в таблицу базы данных.

При выборе следующего отображения (см. Ниже) я получаю эту ошибку:

  Executing (Error)
  Messages
  Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column  "Column 0" returned status value 2 and status text "The value could not be converted because of a potential loss of data.".
 (SQL Server Import and Export Wizard)

  Error 0xc0209029: Data Flow Task 1: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  
  The "output column "Column 0" (10)" failed because error code 0xC0209084 occurred, and the error row       disposition on "output column "Column 0" (10)" specifies failure on error. 
  An error occurred   on the specified object of the specified component.  There may be error messages posted before this with more information about the failure.
  (SQL Server Import and Export Wizard)

  Error 0xc0202092: Data Flow Task 1: An error occurred while processing file    
  "C:\Users\parth\Documents\test2.csv" on data row 1.
  (SQL Server Import and Export Wizard)

   Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  
   The PrimeOutput method on component "Source - test2_csv" (1) returned error code 0xC0202092.  
   The component returned a failure code when the pipeline engine called PrimeOutput(). 
   The meaning of the failure code is defined by the component, but the error is fatal and the
   pipeline stopped executing. 
   There may be error messages posted before this with more information about the failure.
   (SQL Server Import and Export Wizard)

Отображение:

id (tinyint) -> однобайтовый SSIS без знака int

userid (uniqueidentifier) ​​-> уникальный идентификатор SSIS

time (7) ---> время базы данных SSIS с точностью

Может кто-нибудь сказать мне, что я делаю неправильно в этом?Есть ли способ решить эту ошибку?

Заранее спасибо

1 Ответ

1 голос
/ 06 июня 2012

Используйте однобайтовое целое число без знака в качестве исходного типа данных для сопоставления с местом назначения tinyint.Tinyint использует 1 байт памяти и имеет значения в диапазоне от 0 до 255, поэтому он не имеет знака.

...