Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Posso especificar um arquivo sql de entrada com bcp?


Eu tive esse problema hoje e encontrei uma solução conveniente, pelo menos em uma situação ad-hoc.

As tabelas temporárias podem ser criadas por qualquer usuário com permissões de conexão. Isso significa que você também pode criar tabelas temporárias GLOBAIS.

Basta executar sua consulta no gerenciador corporativo (ou sql cmd ou qualquer outro) usando SELECT ...INTO com uma tabela temporária global, por exemplo
SELECT * 
INTO ##mytemptable
FROM SomeTable 
WHERE [massive where clause, for example] 

Você pode então usar a tabela temporária na consulta BCP com um simples
SELECT * FROM ##mytemptable

Em seguida, solte a tabela temporária por meio do gerenciador corporativo
DROP TABLE ##mytemptable