2009-03-17 12 views

Odpowiedz

15

http://msdn.microsoft.com/en-us/library/ms162802.aspx

BCP się operacja wymaga zgody SELECT na tabeli źródłowej.

Działający bcp minimalnie wymaga uprawnień SELECT/INSERT do tabeli docelowej. Ponadto uprawnienie ALTER TABLE jest wymagane, jeżeli którekolwiek z poniższych stwierdzeń jest prawdziwe: istnieją

  • Ograniczenia i CHECK_CONSTRAINTS podpowiedź nie jest określona. ms162802.note (en-us, SQL.100) .gifUwaga: Domyślnym zachowaniem jest wyłączanie wiązań. Aby jawnie włączyć więzy, użyj opcji -h z podpowiedzią CHECK_CONSTRAINTS.

  • Dostępne są wyzwalacze, a podpowiedź FIRE_TRIGGER nie jest określona. ms162802.note (en-us, SQL.100) .gifUwaga: Domyślnie wyzwalacze nie są uruchamiane. Aby jawnie uruchamiać wyzwalacze, użyj opcji -h z podpowiedzią FIRE_TRIGGERS.

  • Opcja -E służy do importowania wartości tożsamości z pliku danych.

ms162802.note (en-us, SQL.100) .gifNote: Wymaganie ALTER zgodę stół na stole docelowym był nowy w SQL Server 2005. Ten nowy wymóg może spowodować bcp skryptów, które nie wymuszają wyzwalaczy i ograniczenia sprawdzają się, jeśli nie powiodą się, jeśli konto użytkownika nie ma uprawnień ALTER do tabeli docelowej.

+2

Aby użyć w .NET: var bulkcopy = new SqlBulkCopy (System.Configuration.ConfigurationSettings.AppSettings [ "ConnectionString"], SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions. CheckConstraints); – dan

1

Tylko permutuj/wstawiaj perms, aby klasa SqlBulkCopy mogła być pomyślnie wykonana. Klasa wydaje instrukcję INSERT BULK przeciwko docelowej tabeli programu SQL Server. Zweryfikowano to dzisiaj na jednym z naszych serwerów dev.

6

Aby określić te podpowiedzi z .NET:

var bulkCopy = new SqlBulkCopy(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"], 
     SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.CheckConstraints);