Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Kann ich eine SQL-Eingabedatei mit bcp angeben?

Ich hatte dieses Problem heute und fand eine bequeme Problemumgehung, zumindest in einer Ad-hoc-Situation.

Temporäre Tabellen können von jedem Benutzer mit Verbindungsberechtigungen erstellt werden. Das bedeutet, dass Sie auch temporäre GLOBAL-Tabellen erstellen können.

Führen Sie einfach Ihre Abfrage im Enterprise Manager (oder sql cmd oder was auch immer) mit SELECT ... INTO mit einer globalen temporären Tabelle aus, z. B.

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

Sie können die temporäre Tabelle dann in der BCP-Abfrage mit einem einfachen

verwenden
SELECT * FROM ##mytemptable

Löschen Sie dann die temporäre Tabelle über den Enterprise Manager

DROP TABLE ##mytemptable