2016-08-17 12 views
-2

У меня есть таблицы Employees и Non Employees (данные импортируются из представлений).Объединить данные из 2 таблиц в один

Теперь мне нужно создать единую таблицу, содержащую данные Employee и Non Employee. Я не могу двигаться дальше.

Я получаю эту ошибку, когда я пытаюсь его с помощью импорта-экспорта задачу:

DataMappingError

  • Отработка (Error)

    Messages • Error 0xc02020c5: Data Flow Task 1: Data conversion failed while converting column "Unit Number" (44) to column "Unit Number" (101). The conversion 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 "Data Conversion 0 - 0.Outputs[Data Conversion Output].Columns[Unit Number]" failed because error code 0xC020907F occurred, and the error row disposition on "Data Conversion 0 - 0.Outputs[Data Conversion Output].Columns[Unit Number]" 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 0xc0047022: Data Flow Task 1: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Data Conversion 0 - 0" (85) failed with error code 0xC0209029 while processing input "Data Conversion Input" (86). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. (SQL Server Import and Export Wizard)

ответ

2

Первый Создать скриптом новую таблицу с колонкой, которую вы хотите.

CREATE TABLE dbo.Employees (
    COLUMN_A TYPE, 
    COLUMN_B VARCHAR(100) 
); 

После этого сделана вставка с выбором старых таблиц.

INSERT INTO dbo.Employees (COLUMN_A, COLUMN_B) 
    SELECT COLUMN_A, COLUMN_B FROM TABLE1 UNION ALL 
    SELECT COLUMN_A, COLUMN_B FROM TABLE2; 

И создайте индекс, чтобы повысить производительность в наиболее запрашиваемой колонке.

+0

будет превышать запрос избавиться от дубликатов? –

+0

Я опустил над запросом и получил эту ошибку: неявное преобразование из типа данных varchar (max) в varbinary (max) недопустимо. Используйте функцию CONVERT для запуска этого запроса. –

1

После рассмотрения деталей кажется, что столбец «Номер единицы» имеет разные типы данных. Чтобы преодолеть эту проблему, либо сделайте тип данных одинаковым как для таблицы, либо создайте новую таблицу с высоким типом данных, а затем существующим (это означает, что в вашей таблице крошечный int, small int), тогда общая таблица будет иметь тип данных smallint.

+0

, поэтому в этом случае у меня есть номер единицы как int и другой tablea s varchar (1). любая идея, какой должен быть общий тип данных таблицы? –

+0

Если это так, то лучший способ - сохранить каждый столбец как VARCHAR, и как только вы подтвердите, что конкретный столбец имеет конкретный тип данных, а затем соответствующим образом измените его в int, tinyint, smallint и т. Д. –

1

Неявная проблема преобразования возникает, когда строки в varbinary-типа вставляются в varchar или любой другой тип данных. Сначала определите, какой столбец определен как varbinary, и используйте cast как cast (имя_столбца как varchar (100)), и проблема будет решена.

+0

Я попробовал CONVERT (varchar (MAX), PictureName, 2), но его не работает :( –

+0

try cast (PictureName как varchar (max)) .Он должен работать –

1

Почему вы используете мастер импорта экспорта?

Если ваши таблицы и представления в той же базе данных, вы можете сделать следующее:

INSERT INTO TABLE 
SELECT COL1, COL2....FROM VIEW 

Если вы используете импорт экспорт задачу, обеспечить спички источника и целевого типов данных и длины (для голец/VARCHAR/NCHAR/nvarchar может произойти, если длина столбца назначения меньше, чем источник).

+0

Да У меня 2 просмотра из одной базы данных. Можно ли вставлять данные из 2 разных представлений в одну таблицу, используя выше запроса? –

+0

Да, сначала разработайте свой T-SQL, объединив свои представления и следуя приведенному выше синтаксису. – p2k

+0

Это работает! спасибо .. но одна проблема: 1-я таблица имела varbinary picturenames и после преобразования в varchar я вижу ÿØÿà .. –

 Смежные вопросы

  • Нет связанных вопросов^_^