2017-01-24 4 views
0

Я неопределенный из которых сверки используются, когда таблица температуры создается сПожалуйста, подтвердите поведение отсортированной database_default в TempDB

create table #temp 
(object varchar(16) COLLATE database_default 
, lev int) 

Э.Г. использует ли это сортировку TempDB или сортировку базы данных пользователей?

ответ

0

Основываясь на ответе Бена, я сделал следующее. Это дает понять, что используется сортировка базы данных пользователя.

/* Find Collation of SQL Server Database */ 

SELECT DATABASEPROPERTYEX('objective', 'Collation') 
-- Latin1_General_BIN2 

SELECT DATABASEPROPERTYEX('tempDB', 'Collation') 
-- SQL_Latin1_General_CP1_CI_AS 

GO 

/* Find Collation of SQL Server Database Table Column */ 

USE objective 
GO 

create table #temp 
(id int 
, word varchar(10)) 

select collation_name 
from tempdb.sys.columns 
where OBJECT_ID = object_id('tempdb.dbo.#temp'); 
-- SQL_Latin1_General_CP1_CI_AS 


create table #temp2 
(id int 
, word varchar(10) COLLATE database_default) 

select collation_name 
from tempdb.sys.columns 
where OBJECT_ID = object_id('tempdb.dbo.#temp2'); 
-- Latin1_General_BIN2 
1

Он использует сортировку tempdb. Я проверил на моей локальной машине, установив параметры сортировки для одного из моих пользовательских баз данных в Albanian_BIN (которые, в частности, отличная от сортировки для данных TempDb) и работают:

create table #foo (a varchar(100), b nvarchar(100)); 
select collation_name 
from tempdb.sys.columns 
where OBJECT_ID = object_id('tempdb.dbo.#foo'); 

Это вернулось с двумя рядами, оба который отражает сортировку tempdb.

+0

Спасибо за ваш ответ Бен. Это дало мне представление о том, как это доказать, но в вашем примере вы не задали сопоставление поля nvarchar с database_default. См. Мой ответ. – Karl

+0

Это точка database_default - отсутствует явно заданная сортировка, столбцы «text» наследуют значение по умолчанию. И ваш вопрос: «Какую базу данных по умолчанию они наследуют?». Если вы предоставите сопоставление в столбце, ответ будет «он не наследует ни один из них - он будет использовать предоставленную вами сортировку». Что мне не хватает? –

+0

Привет, Ben - database_default не является специфической сортировкой. Я столкнулся с проблемами, которые заставляли меня задаться вопросом, использовалась ли временная сортировка tempDB или User DB, и документация была неясной. Все, что я прочитал, ссылается на него с использованием сопоставления базы данных, но есть 2 базы данных. – Karl

Смежные вопросы