Mam tabelę tymczasową, która pobiera dane za pomocą wkładki zbiorczej. Jednak gdy chcę zaktualizować dane z tabeli temp do zwykłej tabeli, daje to problemy z sortowaniem. Wiem, jak rozwiązać ten problem za pomocą coś takiego:Poprawny sposób ustawiania sortowania w tymczasowej kolumnie tabeli TSQL
UPDATE RegularTable
SET r.Column1 = t.ColumnA
FROM RegularTable r INNER JOIN #TEMP t ON
r.Column1 COLLATE DATABASE_DEFAULT =
t.ColumnA COLLATE DATABASE_DEFAULT
Ale czy istnieje sposób, aby ustawić sortowanie w tabeli tymczasowej natychmiast, dzięki czemu nie trzeba używać zestawiać w sprzężeniu? Coś takiego:
CREATE TABLE #TEMP
Column1 varchar(255) COLLATE database_default,
Column2 varchar(60)
Czy to jest prawidłowe kodowanie i czy należy ustawić układanie raz na tabelę lub na kolumnę? A jeśli sortowanie jest ustawione w tabeli, czy można wykluczyć sortowanie z join?
Dzięki @ Christiana Haytera, więc jeśli ustawię COLLATE database_default dla każdej kolumny, nie muszę już używać sortowania w join? Po prostu z ciekawości, czy istnieje sposób sprawdzenia, jakie jest domyślne ustawienie sortowania serwerów? – J3FFK
@ J3FFK: To prawda. Jeśli chodzi o przeglądanie bieżącego sortowania, to jestem pewien, że istnieje funkcja T-SQL, aby to uzyskać, ale zwykle po prostu wywołuję okno dialogowe właściwości bazy danych w Management Studio. :-) –
@ J3FFK: Możesz odczytać sortowanie db z 'master.sys.databases.collation_name' Thanks! –