2009-07-16 6 views
2

J'ai un fichier de 5 Go que j'ai besoin d'insérer en bloc dans une base de données SQL Server (2005 SP2). Lorsque je tente de le faire (en utilisant un fichier de format qui a travaillé dans le passé pour le même fichier d'importation), j'obtiens l'erreur:Impossible d'insérer le fichier en bloc

Le journal des transactions de la base de données 'tempdb' est plein. Pour savoir pourquoi l'espace dans le journal ne peut pas être réutilisé, voir la colonne log_reuse_wait_desc dans sys.databases

Quand je lance la commande

select log_reuse_wait_desc from sys.databases where [name] = 'MyDB' 

je reçois « ACTIVE_TRANSACTION », mais il n'y a pas de transactions ouvertes.

Après des choses que j'ai essayé en vain:

  • avec succès rétrécies les données et les fichiers journaux
  • espace disque vérifié: beaucoup.
  • Essayé sur une base de données avec plusieurs fichiers journaux.
  • Essayé sur une base de données nouvellement créée.
  • Essayé sur une base de données nouvellement créée où j'ai pré-alloué 10 Go pour les données et les fichiers journaux.
  • Redémarrez le service.
+1

Comment procédez-vous à l'insertion en masse? utilisez-vous openrowset? –

+0

A-t-il déjà fonctionné pour ce fichier de données/format de fichier/serveur spécifique, ou seulement sur un autre serveur? –

+0

Si tempdb est plein, vérifiez tempdb, pas votre propre base de données: select log_reuse_wait_desc de sys.databases où [name] = 'tempdb' –

Répondre

1

Augmentez la taille d'allocation de données pour Tempdb et essayez.

+0

Cela était simplement dû au fait que je confondais tempdb avec le fichier journal de la base de données. Tempdb était sur un lecteur faible sur l'espace. – dudeNumber4

Questions connexes