Udostępnij za pośrednictwem


Rzadkie obsługa kolumny w programie SQL Server Native klient

SQL Server klient macierzysty obsługuje rozrzedzone kolumn.Aby uzyskać więcej informacji na temat rozrzedzone kolumn SQL Server, zobacz Using Sparse Columns i Korzystanie z zestawów kolumna.

Aby uzyskać więcej informacji na temat obsługa rozrzedzania kolumna w SQL Server Klient macierzystym, zobacz Obsługa rozrzedzenia kolumny (ODBC) i Obsługa rozrzedzenia kolumny (OLE DB).

Aby uzyskać informacje na temat przykładowych aplikacji, które wskazują tej funkcji zobacz Considerations for Installing SQL Server Samples and Sample Databases.

Scenariusze użytkownika dla kolumny odstępem i SQL Server Native klient

W następującej tabela zestawiono typowe scenariusze użytkownika SQL Server Macierzyste użytkowników klient z rozrzedzone kolumny:

Scenariusz

Zachowanie

select * from table lub IOpenRowset::OpenRowset.

Zwraca wszystkie kolumna, które nie są członkami sparse column_set, oraz kolumna XML zawierający wartości wszystkich kolumn niż null, będących członkami sparse column_set.

Odwołanie do kolumna, według nazwy.

Kolumnę można odwoływać się niezależnie od jego stanu kolumna rozrzedzona lub column_set członkostwo.

Dostęp column_set element członkowski członkowski kolumna do kolumna obliczanej XML.

Kolumny, które są członkami sparse column_set możliwy jest dostęp przez wybranie column_set według nazw i może mieć wartości dodaje i aktualizowane przez aktualizowanie XML w column_set Kolumna.

Wartość musi być zgodna ze schematu dla column_set kolumny.

Pobieranie metadane dla wszystkich kolumn w tabela za pomocą SQLColumns kolumna wzorzec wyszukiwania wartość NULL lub ‘ % ’ (ODBC) lub przy użyciu zestaw zestaw wierszy schematu DBSCHEMA_COLUMNS z ograniczeń kolumna (OLE DB).

Zwraca wartość wiersza dla wszystkich kolumn, które nie są członkami column_set. Jeśli tabela ma sparse column_set, wiersz będzie zwracana do niego.

Należy zauważyć, że to nie zwraca metadane dla kolumn, które są członkami column_set.

Pobieranie metadane dla wszystkich kolumn, niezależnie od sparseness i członkostwo w grupie column_set. To może zwrócić bardzo dużej liczby wierszy.

zestaw pole deskryptora SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_EXTENDED i rozmowy SQLColumns (ODBC).

Wywołanie IDBSchemaRowset::GetRowset dla zestaw wierszy schematu DBSCHEMA_COLUMNS_EXTENDED (OLE DB).

W tym scenariuszu nie jest możliwe z aplikacji, która korzysta z SQL Server Macierzysta klient z jednej z wersji wcześniejszych niż SQL Server 2008. Jednak takiej aplikacji może bezpośrednio kwerendy widoki systemu.

Pobierać metadane tylko do kolumn, które są członkami column_set. To może zwrócić bardzo dużej liczby wierszy.

Ustaw pole deskryptora SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_SPARSE_COLUMN_SET i rozmowy SQLColumns (ODBC).

Wywołanie IDBSchemaRowset::GetRowset dla zestaw wierszy schematu DBSCHEMA_SPARSE_COLUMN_SET (OLE DB).

W tym scenariuszu nie jest możliwe z aplikacji, która korzysta z SQL Server Macierzysta klient z jednej z wersji wcześniejszych niż SQL Server 2008. Takiej aplikacji może jednak kwerendy widoki systemu.

Określa, czy kolumna jest rozrzedzony.

Zapoznaj się z kolumna SS_IS_SPARSE SQLColumns zestaw wyników (ODBC).

Zapoznaj się z kolumna SS_IS_SPARSE zestaw wierszy schematu DBSCHEMA_COLUMNS (OLE DB).

W tym scenariuszu nie jest możliwe z aplikacji, która korzysta z SQL Server Macierzysta klient z jednej z wersji wcześniejszych niż SQL Server 2008. Takiej aplikacji może jednak kwerendy widoki systemu.

Określa, czy kolumna jest column_set.

Zapoznaj się z kolumna SS_IS_COLUMN_SET SQLColumns zestaw wyników. Lub skontaktuj się z SQL Server atrybut danej kolumna SQL_CA_SS_IS_COLUMN_SET (ODBC).

Zapoznaj się z kolumna SS_IS_COLUMN_SET DBSCHEMA_COLUMNS zestaw wierszy schematu.Lub skontaktuj się z dwFlags zwrócone przez IColumnsinfo::GetColumnInfo lub DBCOLUMNFLAGS w zestawie zestaw wierszy zwracanych przez IColumnsRowset::GetColumnsRowset. Dla column_set kolumny DBCOLUMNFLAGS_SS_ISCOLUMN zestaw będzie zestaw (OLE DB).

W tym scenariuszu nie jest możliwe z aplikacji, która korzysta z SQL Server Macierzysta klient z jednej z wersji wcześniejszych niż SQL Server 2008. Takiej aplikacji może jednak kwerendy widoki systemu.

Importowanie i eksportowanie tabela bez rozrzedzone kolumn przy użyciu narzędzia BCP column_set.

Nie zmiany w zachowaniu z poprzednich wersji SQL Server Macierzysta klient.

Importowanie i eksportowanie rozrzedzone kolumn przy użyciu narzędzia BCP dla tabela z column_set.

The column_set is imported and exported in the same way as XML; that is, as varbinary(max) if bound as a binary type, or as nvarchar(max) if bound as a char or wchar type.

Kolumny, które są członkami sparse column_set nie są eksportowane jako odrębne kolumny; są one tylko eksportowane w wartości column_set.

queryout zachowanie dla BCP.

Żadna zmiana w obsłudze jednoznacznie nazwanych kolumn z poprzednich wersji SQL Server Macierzysta klient.

Scenariusze dotyczące importowania i eksportowania między tabelami w różnych schematów mogą wymagać specjalnej obsługi.

Aby uzyskać więcej informacji na temat BCP zobacz kopiowanie masowe Pomoc techniczna (BCP) dla kolumny sparse w dalszej części tego tematu.

Zachowanie klient poziom niedziałający

niedziałający-poziom klientów będzie zwracać metadane wyłącznie dla kolumn, które nie są członkami sparse column_set dla SQLColumns i DBSCHMA_COLUMNS. Dodatkowe wierszy schematu DB OLE, wprowadzone w SQL Server 2008 Macierzysta klient nie będą dostępne ani modyfikacji, które będą SQLColumns w ODBC za pomocą SQL_SOPT_SS_NAME_SCOPE.

Niskiego poziom, klienci mogą uzyskać dostęp do kolumny, które są członkami sparse column_set według nazwy a także column_set kolumny są dostępne jako kolumna XML do SQL Server 2005 Klienci posiadający ntext kolumny SQL Server 2000 Klienci.

kopiowanie masowe Obsługi technicznej (BCP) dla kolumn odstępem

Ma zmian w interfejsie API BCP ODBC lub OLE DB w kolumnach rozrzedzone lub column_set funkcje.

Jeśli tabela ma column_set, rozrzedzone kolumny nie są obsługiwane jako odrębne kolumny. Wartości wszystkich kolumn rozrzedzone są uwzględniane w wartości column_set, który jest eksportowany w taki sam sposób, jak to kolumna XML; to znaczy jako varbinary(max) Jeśli powiązana jako typ binarny lub nvarchar(max) Jeśli powiązana jako char lub wchar Typ). Podczas importowania column_set Wartość musi być zgodna ze schematem column_set.

For queryout operations, there is no change to the way explicitly referenced columns are handled.column_set columns have the same behavior as XML columns and sparseness has no effect on the handling of named sparse columns.

Jednak jeśli queryout Służy do eksportu, a odwołać kolumna rozrzedzona, które są członkami kolumna rozrzedzona zestaw według nazwy, nie można wykonać bezpośrednie importu do tabela podobnie strukturalnych. Wynika to BCP używa metadane zgodne z select * Operacja importu i nie może dopasować column_set element członkowski członkowski kolumny z metadane. Aby zaimportować column_set element członkowski członkowski kolumny pojedynczo, należy zdefiniować widok tabela, która odwołuje się żądane column_set kolumny, a musi wykonać operację importowania, korzystając z widoku.