sql >> Base de Datos >  >> RDS >> Sqlserver

¿Puedo especificar un archivo sql de entrada con bcp?

Tuve este problema hoy y encontré una solución conveniente, al menos en una situación ad-hoc.

Cualquier usuario con permisos de conexión puede crear tablas temporales. Esto significa que también puede crear tablas temporales GLOBALES.

Simplemente ejecute su consulta en el administrador empresarial (o sql cmd o lo que sea) usando SELECT ... INTO con una tabla temporal global, por ejemplo,

SELECT * 
INTO ##mytemptable
FROM SomeTable 
WHERE [massive where clause, for example] 

Luego puede usar la tabla temporal en la consulta BCP con un simple

SELECT * FROM ##mytemptable

Luego suelte la tabla temporal a través del administrador empresarial

DROP TABLE ##mytemptable