Zalecenia dotyczące używania rozproszonych kwerendy

Tak długo, jak dostawca obsługuje wymagane interfejsy OLE DB, każdej klasy Transact-SQL Instrukcja wymienionych w tym temacie jest dozwolone.

Instrukcje języka Transact-SQL

Poniżej znajduje się lista podzestawy z Transact-SQL język, które są dozwolone w tabelach zdalnym uzyskać dostęp za pomocą połączonych nazwy serwera lub nazwy ad hoc:

  • Wszystkie kwerendy, których standardowego formularza SELECT select_list Klauzulę WHERE, Klauzula FROM są dozwolone. INTO new_table_name Klauzula SELECT nie jest dozwolone podczas new_table_name odnosi się do tabela zdalnej.

  • W instrukcji SELECT, INSERT, UPDATE i DELETE kolumn w tabelach zdalnego nie może zostać zakwalifikowane pod nazwą jednoczęściową lub four-part tabela.Zdalne tabele powinny być alias w klauzula FROM, a nazwa alias, należy użyć nazwy kolumna.

  • Tabele, które mają xml kolumny nie można zbadać, nawet wtedy, gdy kwerenda uzyskuje dostęp do innych niż-xml kolumny w tabela.

  • Jeśli kolumna dużego obiektu (LOB), z tabela zdalna jest określony jako element w select_list instrukcja SELECT w instrukcja SELECT nie może zawierać klauzulę ORDER BY.

  • Predykaty IS NULL i IS NOT NULL nie mogą odwoływać się do kolumn LOB w tabela zdalna.

  • GROUP BY wszystkie jest niedozwolona w kwerenda rozproszona podczas kwerendy ma również klauzula WHERE.GROUP BY, nie określając wszystko jest obsługiwane.

  • Instrukcji INSERT są dozwolone dla zdalnego tabel, tak długo, jak dostawca spełnia wymagania OLE DB dla instrukcji INSERT.Aby uzyskać więcej informacji zobaczINSERT Requirements for OLE DB Providers.

  • Stałe wartości NULL nie może zostać wstawiony do timestamp Kolumna za pomocą kwerenda rozproszona.

  • $ IDENTITY a $ ROWGUIDCOL nie są obsługiwane z kwerendami rozproszonymi.Jawne wartości nie można wstawić do kolumn tożsamości w tabelach zdalnego.

  • Instrukcje UPDATE i DELETE są dozwolone dla zdalnego tabel dostawca spełnia wymagania interfejs OLE DB w określonej tabela.Aby uzyskać więcej informacji zobaczUPDATE and DELETE Requirements for OLE DB Providers.

  • A tabela zdalna mogą zostać zaktualizowane lub usunięte przy użyciu kursor, zdefiniowane na rozproszony kwerendy, kiedy tabela zdalna jest określona w aktualizacji lub instrukcja DELETE (UPDATE lub DELETE remote_table GDY BIEŻĄCYM Z cursor_name), gdy dostawca spełnia warunki aktualizacji na tabela zdalna. Aby uzyskać więcej informacji zobaczPrzy użyciu Distributed Queries kursory.

  • Instrukcje READTEXT, WRITETEXT i UPDATETEXT nie są obsługiwane dla tabel zdalnego.

  • Kolumny, które mają duże obiektów (takich jak typy danych text, ntext, lub image) nie może odwoływać się do aktualizacji lub wstawić operacji, jeśli dostawca jest utworzone poza SQL Server proces, opcja dostawcy AllowInProcess jest równa 0. Aby uzyskać więcej informacji zobaczConfiguring OLE DB Providers for Distributed Queries.

  • Nie wolno instrukcji języka definicja danych, takich jak instrukcji CREATE, ALTER lub DROP serwery połączone.

  • Instrukcja wykonać może wysyłać do serwer połączony przekazujące kierują polecenia przy użyciu słowa kluczowego AT.Możliwość wykonywania instrukcja zależy od konfiguracja RPC do serwer połączony i możliwość honorować wykonać instrukcja serwer połączony.

  • Nie operacji poziom bazy danych lub instrukcje są dozwolone na serwerach połączone.

Inne zasady

Poniżej przedstawiono niektóre dodatkowe ograniczenia i wskazówek:

  • STATYCZNY lub NIEWRAŻLIWE kursory odwoływania się do zdalnego tabel.Zestaw KLUCZY kursory mogą odwoływać się do zdalnego tabel dostawca OLE DB spełnia określone wymagania.Aby uzyskać więcej informacji na temat tych wymagań zobacz Keyset-Driven Cursors Requirements for OLE DB Providers. Nie typu kursor mogą odwoływać się do tabela zdalnej.

  • Procedury przechowywane są obsługiwane tylko na SQL Server źródła danych.

  • Połączenie musi mieć ANSI_NULLS, i ustawienia opcji ANSI_WARNINGS ON, zanim połączenie można wykonywać kwerendy rozproszone.Aby uzyskać więcej informacji zobaczSET ANSI_DEFAULTS (Transact-SQL).

  • Aby utworzyć najlepsze planów kwerend, podczas pracy z tabelą serwer połączony, procesor kwerend muszą mieć statystyk dystrybucji danych z serwer połączony.Użytkownicy, którzy mają ograniczone uprawnienia dla każdej kolumny w tabela nie ma wystarczających uprawnień do uzyskania wszystkich statystyk użyteczne i może odbierać mniej wydajne planu kwerend i niska wydajność.Jeśli serwer połączone jest dane wystąpienie składnika SQL Server, uzyskać wszystkich dostępnych statystyk, użytkownik musi własnej tabela lub należeć do roli sysadmin stałych serwera, the db_owner ustalonego rola bazy danych lub roli db_ddladmin stałej bazy danych serwer połączony.