Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Puis-je spécifier un fichier sql d'entrée avec bcp ?

J'ai eu ce problème aujourd'hui et j'ai trouvé une solution de contournement pratique, du moins dans une situation ad hoc.

Les tables temporaires peuvent être créées par n'importe quel utilisateur disposant d'autorisations de connexion. Cela signifie que vous pouvez également créer des tables temporaires GLOBALES.

Exécutez simplement votre requête dans le gestionnaire d'entreprise (ou sql cmd ou autre) en utilisant SELECT ... INTO avec une table temporaire globale, par exemple

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

Vous pouvez ensuite utiliser la table temporaire dans la requête BCP avec un simple

SELECT * FROM ##mytemptable

Déposez ensuite la table temporaire via le gestionnaire d'entreprise

DROP TABLE ##mytemptable