SqlBulkInsert - Comment définir des Déclencheurs, les Contraintes de Vérification?

Je suis de l'exécution d'une instruction bulk insert avec un ADO.NET 2.0 SqlBulkCopy objet à partir d'une méthode C# dans une base de données MS SQL 2005, à l'aide d'une base de données de l'utilisateur avec des autorisations limitées. Lorsque j'essaie d'exécuter l'opération, j'ai le message d'erreur:

De copie en bloc a échoué. L'utilisateur n'a pas
L'autorisation ALTER TABLE sur la table
'theTable'. MODIFIER
TABLE autorisation est requise sur le
table cible d'une opération de copie en bloc
si la table a des déclencheurs ou vérifier
contraintes, mais 'FIRE_TRIGGERS' ou
'CHECK_CONSTRAINTS' en bloc les allusions ne sont pas
précisé que les options de la copie en bloc
commande.

J'ai lu de la documentation et des créé le de copie en bloc de l'objet avec le constructeur qui me permet de préciser les choses:

    SqlBulkCopy bc = new SqlBulkCopy(
        System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"],
        SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints);

Mais cela ne changera rien - j'obtiens le même message d'erreur qu'avant. J'ai essayé de jongler avec certains des autres SqlBulkCopyOptions valeurs mais pas de chance. Je pensais vraiment que ce serait résoudre le problème, suis-je raté quelque chose?

J'ai testé la procédure après l'octroi de l'ALTER sur la table de mon utilisateur, et le succès de l'opération. Cependant, ce n'est pas une option pour ma situation.

OriginalL'auteur James Orr | 2008-12-16