powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Collation и таблицы в tempdb
5 сообщений из 5, страница 1 из 1
Collation и таблицы в tempdb
    #32048705
Ьакс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL2K - collation сервера и БД разные. Одна из хранимых процедур создает временную таблицу, которая попадает в tempdb, соответственно collation у нее унаследован от сервера. Из-за этого идут проблемы.
При попытке указать collation в процедуре SQL ругается на недопустимый синтаксис рядом со словом COLLATE. Та же конструкция (создания временной таблицы) ВНЕ процедуры работает нормально, т.е. проблема не синтаксическая.
Есть ли возможность каким-либо образом создать ее ИЗ процедуры с указанием конкретного collation?
...
Рейтинг: 0 / 0
Collation и таблицы в tempdb
    #32048730
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть и скрипт покажите ? А то у меня вроде бы все работает

Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TABLE #MyTable1
  (CharCol1      varchar( 10 ) COLLATE French_CI_AS NOT NULL,
   CharCol2      varchar( 10 ) COLLATE Japanese_Unicode_CI_AS NOT NULL,
   CharCol3      varchar( 10 ) COLLATE Cyrillic_General_CI_AS NOT NULL
  )

drop table #mytable1


Кстати у вашей базы Compatibility Level не для 7-ки случайно поставлен ?
...
Рейтинг: 0 / 0
Collation и таблицы в tempdb
    #32048760
Ьакс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так-то работает, а в процедуре?

Вот исходный кусок процедуры, который работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE PROCEDURE SomeProcedure
@op int, @ReqName varchar( 50 ), @Descr int
 --with encryption
 
AS
create table #b
(
	NameText varchar( 30 ) Not Null,
	NameTable varchar( 30 ) Not Null,
	NameField varchar( 30 ) Not Null,
	DomName varchar( 30 ) Not null,
	Orig varchar( 255 ) Not Null,
	Transl varchar( 255 ) Not Null,
	Oper int Not null,
	Query int Not Null,
	Descr varchar( 60 ) Not Null
) 
	insert #b (NameText, NameTable, NameField, DomName, Orig, Transl, Oper, Query, Descr)
	select NameText, NameTable, NameField, '', Orig, Orig,  2 , Query, ''
		from RdiDataTrBuf where op=@op
	delete RdiDataTrBuf where op=@op



А вот так ругается на синтаксис.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE PROCEDURE RdiTranslateComm
@op int, @ReqName varchar( 50 ), @Descr int
 --with encryption
 
AS
create table #b
(
	NameText varchar( 30 ) Not Null,
	NameTable varchar( 30 ) Not Null,
	NameField varchar( 30 ) Not Null,
	DomName varchar( 30 ) Not null,
	Orig varchar( 255 ) Not Null,
	Transl varchar( 255 ) COLLATE Latin1_General_BIN Not Null,
	Oper int Not null,
	Query int Not Null,
	Descr varchar( 60 ) Not Null
) 
	insert #b (NameText, NameTable, NameField, DomName, Orig, Transl, Oper, Query, Descr)
	select NameText, NameTable, NameField, '', Orig, Orig,  2 , Query, ''
		from RdiDataTrBuf where op=@op
	delete RdiDataTrBuf where op=@op



Повторюсь - скрипт создания таблицы работает при запуске через QA, но не в процедуре.
Совместимость стояла для 7, из-за этого?
...
Рейтинг: 0 / 0
Collation и таблицы в tempdb
    #32048769
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совместимость стояла для 7, из-за этого?

Да, т.к. в 7-ке как раз такой синтаксис неправильный.
В 8-ке работает - проверил
...
Рейтинг: 0 / 0
Collation и таблицы в tempdb
    #32048777
Ьакс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОК, спасибо!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Collation и таблицы в tempdb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]