Cómo importar datos de una vista en otra base de datos (en otro servidor) en una tabla en SQL Server 2000?

StackOverflow https://stackoverflow.com/questions/2282771

  •  21-09-2019
  •  | 
  •  

Pregunta

Yo estaba pensando en usar comando bcp para resolver la autenticación de usuario, pero hace un comando bcp capaz de importar a una tabla en mi base de datos? Por cierto, estoy usando entorno de SQL Server 2000.

Aquí está el código que tengo hasta ahora:

  

SET @Command = 'BCP "SELECT vwTest * desde [myserver \ sql] .test.dbo.vwTest." Queryout dbo.test -C ACP -c -r \ n -t ";" -S miservidor \ sql -Umyuser -Puser1'
  EXEC master.dbo.xp_cmdshell @Command

¿Fue útil?

Solución

Basado en la comparación de BCP, BULK INSERT, OPENROWSET (inferir servidor vinculado ) aquí :

  

... la utilidad bcp se ejecuta fuera de proceso. Para mover datos a través de espacios de memoria de proceso, BCP debe utilizar el cálculo de referencias de datos entre procesos. Entre procesos de cálculo de referencias de datos es el proceso de convertir parámetros de una llamada a un método en una corriente de bytes. Esto puede añadir una carga significativa para el procesador. Sin embargo, debido BCP [tanto] analiza los datos y [] convierte los datos en [la] formato de almacenamiento nativo en el proceso del cliente, pueden sacar datos de análisis y conversión de datos desde el proceso de SQL Server.

... BCP posiblemente no es el medio más eficiente de transferencia de datos. Usted puede ser mejor a:

  1. servidor vinculado ejemplo a la otra base de datos
  2. Utilice las sentencias INSERT, por lo que las mesas se llenan con base en los registros de la base de datos expuestos en la instancia de servidor vinculado.

Además de ser potencialmente más eficiente, sólo es necesario configurar la instancia de servidor vinculado vez frente a correr BCP para crear secuencias de comandos de salida cada vez que se desea mover los datos.

Mind que la instancia de servidor vinculado se basa en un usuario en la otra base de datos, por lo permisos a la otra base de datos se basan en que los permisos de los usuarios.

Otros consejos

seguro !!

Utilice este mandato (adoptarlo para sus necesidades) en la máquina fuente:

bcp database.dbo.viewname out c:\temp\viewname.bcp

y luego importar los datos de nuevo en el sistema de destino mediante:

bcp newdatabase.dbo.importtable in c:\temp\viewname.bcp 
    -c -S(servername) -U(username) -P(password)

Esto debería agarrar el contenido de su "nombredevista" del servidor de origen, lo puso en un archivo temporal, e insertar el archivo de nuevo en la nueva base de datos en el nuevo servidor.

Normalmente, se cargar los datos de filas en una nueva tabla de etapas temporales, y formar allí, utilizar T-SQL u otros medios para insertar esos datos en las tablas reales.

Consulte el documentación de MSDN en el BCP en SQL Server 2000 para obtener información sobre todos los interruptores y sus significados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top