una txt registros otra masiva importar importacion hacer exportar exportacion datos copiar con como cargar carga sql-server type-conversion ssms-2012

sql-server - registros - importar txt a sql



¿Tipo de fuente 200 en el Asistente de importación y exportación de SQL Server? (8)

Apuesto a que las columnas de texto no se pueden insertar en columnas varchar con el asistente. Dependiendo de qué tan grande sea la tabla, puede exportar la fuente a csv a través del SSMS y luego importarla. Eso debería funcionar, pero si tiene varias tablas para importar, podría agregar un servidor vinculado. Entonces puedes calificar la tabla antigua o la tabla nueva de esta manera:

insert into [new_server].database.dbo.tablename select * from old_table

Sé que SQL2000 es un problema para crear servidores vinculados, aunque supongo que está intentando exportar ya que tiene columnas de texto.

Estoy tratando de importar datos de una base de datos en un servidor a una nueva tabla en un servidor diferente, usando el Asistente de importación y exportación de SQL Server. (SQL Server Management Studio 2012)

En el asistente, marqué "Escribir una consulta para especificar los datos a transferir", y la declaración SQL devuelve datos que contienen las siguientes cuatro columnas:

+-----------------------------------------------------------------------------+ | ID(varchar(100)) | Title(text) | Description(text) | IsActive(tinyint)| +-----------------------------------------------------------------------------+

Quiero cambiar los tipos para la nueva tabla a

+----------------------------------------------------------------------------------------+ | ID(varchar(4)) | Title(varchar(200)) | Description(varchar(2000)) | IsActive(bit)| +----------------------------------------------------------------------------------------+

Por lo tanto, en la página "Asignaciones de columnas" (en la página " Seleccionar tablas y vistas de origen ", hice clic en " Editar asignaciones ..."), cambié el tipo de destino a los tipos anteriores. Luego, después de hacer clic en "Siguiente", en la página "Revisar asignación de tipos de datos", aparece un error que dice " Found 3 unknown column type conversion(s). You are only allowed to save the package "

La asignación de tipo de datos muestra la siguiente información:

icon Source Column Source Type Destination Column Destination Type Convert ---------------------------------------------------------------------------------- error ID 200 ID varchar error Title 200 Title varchar error Description 201 Description varchar warning IsActive tinyint IsActive bit

Incluso si no cambio el tipo de datos en la página " Editar asignaciones ... ", aparece el mismo error.

No entiendo qué significa "200" en el contexto de un tipo de datos, y ¿cómo puedo importar estos datos a una nueva tabla en un servidor diferente?

Aprecio cualquier ayuda.


Con un poco de experimentación, este error solo parece ocurrir cuando tiene una consulta como origen. La respuesta aceptada no funcionó para mí, ya que copiar en un archivo plano resultaría en el mismo error.

Para resolver esto, puse mi consulta en una View luego seleccioné Copy From one or more Tables Or Views lugar de Write a query...

Pasé por el asistente normalmente después de eso y mis datos se procesaron sin error




La solución más rápida es exportar los datos a una nueva tabla en la misma base de datos (fuente) usando el asistente de importación / exportación. Luego exporta los datos de la nueva tabla. De alguna manera, el asistente de importación / exportación hace su magia (no realmente) en el momento en que crea la nueva tabla. Gracias, Jyoti, por terminar con el dolor de usar el asistente de importación / exportación.


Pude evitar esto al convertir los campos de caracteres como char (##) en el SQL y luego cambiar los tipos de datos de destino a varchar (##). Es posible que los campos necesiten recorte antes del uso, pero la importación funciona.


Realmente no necesitas hacer ningún tipo de problema con la configuración, las vistas o lo que sea. Simplemente guarde el paquete SSIS y ejecútelo haciendo doble clic en el Explorador. Esto ejecutará la "Utilidad de paquete de ejecución (DTExecUI.exe en la carpeta ManagementStudio) que ejecutará el paquete sin errores.


Una solución a largo plazo (además de que Microsoft la arregla) (¿o ya lo han hecho?) Es también algunos enlaces profundos de las respuestas publicadas.

En la máquina afectada, hay un archivo xml que define una asignación de código a valor para cada tipo de transformación.
Lo que se ve con el "200" y el "201" causando una falla, es un mapeo faltante
.... bueno, no debería haber salido como "200/201", pero como lo hizo, nos gustaría que estuvieran mapeados

Puede insertarse manualmente, si está dispuesto a jugar con tales configuraciones.

Aquí es donde obtuve la respuesta, bastante abajo en la página: http://social.msdn.microsoft.com/Forums/sqlserver/en-US/97ff1f01-c02a-4c9a-b867-8eaecc464cfb/2012-sp1-no-longer-recognizes-common-data-types?forum=sqlintegrationservices

Los archivos de asignación están en C: / Archivos de programa (x86) / Microsoft SQL Server / 110 / DTS / MappingFiles /
(o equivalente)

Hay uno para cada tipo de transformación de origen a destino.

Para ir entre servidores SQL, mire algunos como
MSSQLToSSIS10.XML
MSSql9ToMSSql8.xml
MSSql10ToMSSql9.xml

Donde ves

<!-- varchar --> <dtm:DataTypeMapping > <dtm:SourceDataType> <dtm:DataTypeName>varchar</dtm:DataTypeName> </dtm:SourceDataType> <dtm:DestinationDataType> <dtm:CharacterStringType> <dtm:DataTypeName>DT_STR</dtm:DataTypeName> <dtm:UseSourceLength/> </dtm:CharacterStringType> </dtm:DestinationDataType> </dtm:DataTypeMapping>

Agregue la asignación "200" para que coincida de manera que termine con

<!-- varchar --> <dtm:DataTypeMapping > <dtm:SourceDataType> <dtm:DataTypeName>varchar</dtm:DataTypeName> </dtm:SourceDataType> <dtm:DestinationDataType> <dtm:CharacterStringType> <dtm:DataTypeName>DT_STR</dtm:DataTypeName> <dtm:UseSourceLength/> </dtm:CharacterStringType> </dtm:DestinationDataType> </dtm:DataTypeMapping> <dtm:DataTypeMapping > <dtm:SourceDataType> <dtm:DataTypeName>200</dtm:DataTypeName> </dtm:SourceDataType> <dtm:DestinationDataType> <dtm:CharacterStringType> <dtm:DataTypeName>DT_STR</dtm:DataTypeName> <dtm:UseSourceLength/> </dtm:CharacterStringType> </dtm:DestinationDataType> </dtm:DataTypeMapping>

¡Repare nvarchar y cualquier otro de la misma manera!