Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 collation и удаление пользователей  [new]
vah
Member

Откуда:
Сообщений: 2694
Скажите пожалуйста,

пытаюсь скриптом удалить пользователя


автор
DROP USER ['+@us++']



пишет ошибку

автор
Сообщение 468, уровень 16, состояние 9, строка 11
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS" и "SQL_Latin1_General_CP1251_CI_AS" в операции equal to.


что делать?

Заранее благодарен.
15 фев 13, 13:21    [13931464]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
Glory
Member

Откуда:
Сообщений: 104751
vah
Скажите пожалуйста,

пытаюсь скриптом удалить пользователя


автор
DROP USER ['+@us++']


А вы текст своей команды видели ?
15 фев 13, 13:24    [13931508]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
Гость333
Member

Откуда:
Сообщений: 3683
vah
пытаюсь скриптом удалить пользователя

автор
DROP USER ['+@us++']

Это весь скрипт? :-) То есть вы пытаетесь удалить пользователя с экстравагантным именем '+@us++'?
15 фев 13, 13:33    [13931585]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
vah
Member

Откуда:
Сообщений: 2694
Glory
vah
Скажите пожалуйста,

пытаюсь скриптом удалить пользователя


пропущено...


А вы текст своей команды видели ?


блин, но конечно так

DROP USER [Вася]


в других базах удаляет, здесь дело не в этом
15 фев 13, 13:41    [13931647]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
Glory
Member

Откуда:
Сообщений: 104751
vah
блин, но конечно так

DROP USER [Вася]


в других базах удаляет, здесь дело не в этом

Т.е. вы вручную в студии пишите DROP USER [Вася] и получаете ошибку ?
15 фев 13, 13:46    [13931687]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
vah
Member

Откуда:
Сообщений: 2694
Glory
vah
блин, но конечно так

DROP USER [Вася]


в других базах удаляет, здесь дело не в этом

Т.е. вы вручную в студии пишите DROP USER [Вася] и получаете ошибку ?


да, в других базах не было. Collation этой база отличается от других баз.
15 фев 13, 14:15    [13931890]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
vah
Member

Откуда:
Сообщений: 2694
Glory
vah
блин, но конечно так

DROP USER [Вася]


в других базах удаляет, здесь дело не в этом

Т.е. вы вручную в студии пишите DROP USER [Вася] и получаете ошибку ?


нет решения?
15 фев 13, 17:46    [13933523]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
Гость333
Member

Откуда:
Сообщений: 3683
vah
нет решения?

Решение есть, но вы скрипт так и не показали.
15 фев 13, 18:08    [13933715]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
vah
Glory
Т.е. вы вручную в студии пишите DROP USER [Вася] и получаете ошибку ?

да, в других базах не было. Collation этой база отличается от других баз.
Да, удивительно, на скрипт:
DROP USER [Вася]
Ошибка:
Сообщение 468, уровень 16, состояние 9, строка 11
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS" и "SQL_Latin1_General_CP1251_CI_AS" в операции equal to.

Самое странное, что в скрипте из одной строчки ошибка в 11 строке???

Этот микрософт совсем одурел, бага на баге!!!
15 фев 13, 19:27    [13934123]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
alexeyvg,
может Profiler запустить и посмотреть что там на самом деле исполняется
может там триггер какой на этом висит?
15 фев 13, 19:44    [13934214]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
leov
alexeyvg,
может Profiler запустить и посмотреть что там на самом деле исполняется
может там триггер какой на этом висит?
Да, может и висит, можно и профайлером, тоже хороший вариант, даже если нету триггера.

Более всего вероятно, что у vah просто бага в его коде, который он не показывает, и нужно этот код просто прочитать.
15 фев 13, 19:58    [13934281]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
vah
Member

Откуда:
Сообщений: 2694
alexeyvg
leov
alexeyvg,
может Profiler запустить и посмотреть что там на самом деле исполняется
может там триггер какой на этом висит?
Да, может и висит, можно и профайлером, тоже хороший вариант, даже если нету триггера.

Более всего вероятно, что у vah просто бага в его коде, который он не показывает, и нужно этот код просто прочитать.






автор
DECLARE @us varchar(2000)

DECLARE @sql varchar(2000)

DECLARE Employee_Cursor CURSOR FOR
select name from sys.database_principals where type<>'R' and name like '%[а-яА-Я]%' and name not in (select n from spec.[dbo].[Table_1])
OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor

INTO @us

WHILE @@FETCH_STATUS = 0

BEGIN

set @sql= 'DROP SCHEMA ['+@us+']'
exec (@sql)
--print @sql
set @sql= 'DROP USER ['+@us+']'

--print @sql

exec (@sql)

FETCH NEXT FROM Employee_Cursor INTO @us

END

CLOSE Employee_Cursor

DEALLOCATE Employee_Cursor
16 фев 13, 15:30    [13935984]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
vah,
вероятно что кодировка в базе sys откуда беруться имена
конфликтует с кодировкой конкретной базы

может вот это
select name from sys.database_principals...

переписать вот так
select (name COLLATE database_default) name from sys.database_principals...

я не уверен. просто предполагаю
16 фев 13, 15:45    [13935998]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
vah
Member

Откуда:
Сообщений: 2694
leov
COLLATE database_default


спасибо
16 фев 13, 16:06    [13936037]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: collation и удаление пользователей  [new]
sasha_chelios
Member

Откуда:
Сообщений: 4
vah,

Добрый день! У меня такая же проблема. Есть Единая база и промежуточная, данные должны быть синхронизированы. Пытался выполнить запрос для проверки различий в таблицах (знаю, что они есть)

SELECT *
FROM IntegraDB.DBO.ConstractionSites as DB1tbl
Collate database_default
WHERE
not EXISTS (SELECT 1 FROM Directum.dbo.MBAnalit as DB2tbl WHERE DB1tbl.Description = DB2tbl.Namean and DB2tbl.vid=3364)

и ругается
Неправильный синтаксис около ключевого слова "Collate".

В справке на MSDN ничего путного не нашёл. Помогите плиз
15 май 14, 18:18    [16023098]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
Glory
Member

Откуда:
Сообщений: 104751
sasha_chelios
и ругается
Неправильный синтаксис около ключевого слова "Collate".

Потому что нельзя пихать ключевые слова в любые места запроса
15 май 14, 18:22    [16023115]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
sasha_chelios
Member

Откуда:
Сообщений: 4
Glory, таки да :) Прощу прощения

SELECT *
FROM IntegraDB.DBO.ConstractionSites as DB1tbl
WHERE
not EXISTS (SELECT 1 FROM Directum.dbo.MBAnalit as DB2tbl WHERE DB1tbl.Description = DB2tbl.NameAn and DB2tbl.vid=3364 collate SQL_Latin1_General_CP1251_CI_AS)

результат
Не удалось разрешить конфликт параметров сортировки между "SQL_Latin1_General_CP1251_CI_AS" и "Cyrillic_General_CI_AS" в операции equal to.

Посмотрел в свойствах этих баз, у них одинаковая кодировка.. чего тогда ругается?
15 май 14, 18:38    [16023220]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
o-o
Guest
sasha_chelios,

вы покажите ошибку, к-ая вываливается до того, как запихнули в запрос COLLATE
15 май 14, 18:41    [16023238]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
o-o
Guest
хотя и так ясно, кто конфликтует.
выполните:

use IntegraDB;
go

select collation_name 
from   sys.columns
where  object_id = object_id('dbo.ConstractionSites') and name = 'Description'

use Directum;
go

select collation_name 
from   sys.columns
where  object_id = object_id('dbo.MBAnalit') and name = 'NameAn'


колонкам могли индивидуально коллэйшены назначить,
так что совпадение коллэйшенов баз ни о чем не говорит
15 май 14, 18:54    [16023318]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
sasha_chelios
Member

Откуда:
Сообщений: 4
o-o,

Да, разные

Cyrillic_General_CI_AS и SQL_Latin1_General_CP1251_CI_AS.

Та же ошибка, что и с добавлением COLLATE

Не удалось разрешить конфликт параметров сортировки между "SQL_Latin1_General_CP1251_CI_AS" и "Cyrillic_General_CI_AS" в операции equal to.

Как написать запрос, учитывая этот конфликт?
15 май 14, 20:51    [16023681]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
Glory
Member

Откуда:
Сообщений: 104751
sasha_chelios
результат
Не удалось разрешить конфликт параметров сортировки между "SQL_Latin1_General_CP1251_CI_AS" и "Cyrillic_General_CI_AS" в операции equal to.

Ничего, что у вас в WHERE две операции equal to ?
15 май 14, 21:39    [16023798]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
sasha_chelios
Member

Откуда:
Сообщений: 4
Glory,

Точно! Работает, спасибо. Итоговый запрос

SELECT  *  
FROM IntegraDB.DBO.ConstractionSites as DB1tbl
WHERE not EXISTS (
 SELECT 1  
 FROM Directum.dbo.MBAnalit as DB2tbl 
 WHERE DB1tbl.Description = DB2tbl.NameAn  collate SQL_Latin1_General_CP1251_CI_AS )


А теперь, объясните. Почему после того как я убрал кусок кода
автор
and DB2tbl.vid=3364
всё заработало?
И что за операции equal to?
15 май 14, 22:10    [16023920]     Ответить | Цитировать Сообщить модератору
 Re: collation и удаление пользователей  [new]
Glory
Member

Откуда:
Сообщений: 104751
sasha_chelios
всё заработало?
И что за операции equal to?

Операция equal to - это равно, т.е =
15 май 14, 22:24    [16023966]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить