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

Откуда:
Сообщений: 367
Привет всем!
все очень просто. SQL SERVER 2000.
вот структура:
CREATE TABLE [dbo].[T_Persons] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,
[SurName] [varchar] (30) COLLATE Cyrillic_General_CI_AS NULL
) ON [PRIMARY]


1) select * from T_Persons where SurName like 'Иванова'-- в этой таблице 3 - записей 'Иванова'(разные ID)- но в данный момент выходит 4 записи 2 из них одинаковые ID

2) select surname ,count(*) from T_Persons where SurName like 'Иванова'
group by surname -- вот здесь выходит что 'Ивановых' -4

как то это странно, потому что T_Persons имеет IDENTITY, тем более по пункту 2) должно выйти кол-во 3
14 дек 09, 08:40    [8061331]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение select  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
а что вернет
select * from dbo.T_Persons where SurName like 'Иванова'
?
14 дек 09, 08:51    [8061348]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение select  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Mari-Salt,

свойство IDENTITY не гарантирует уникальность.
Кто-то вставил Иванову с уже существующим ID,
но с другим отчеством. См. SET IDENTITY_INSERT
На ID надо задать CONSTRAINT PRIMARY KEY или CONSTRAINT UNIQUE
или создать UNIQUE INDEX.
После того, как обеспечите уникальность, разумеется.
14 дек 09, 08:59    [8061364]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение select  [new]
Mari-Salt
Member

Откуда:
Сообщений: 367
изменила одно поле в T_Personse (ну в верху не указала чтобы покороче было это passport varchar(30) ) , при селекте одна из записей которые id одинаковые поле passport не выходит. Странно, что может быть такое?
14 дек 09, 09:08    [8061381]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение select  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
а вы мой запрос не запускали? может у вас есть представление T_Persons с другим владельцем?
14 дек 09, 09:14    [8061399]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение select  [new]
Mari-Salt
Member

Откуда:
Сообщений: 367
-=DiM@n=-, Результат тот же самый,короче выявила что действительно есть двойной ID / при
delete T_Persons where SurName like 'Иванова'
and lastdate=convert(datetime, '2006-10-30 11:51:33.077', 101)

удалении другой выходит

Server: Msg 547, Level 16, State 1, Line 1
DELETE statement conflicted with COLUMN REFERENCE constraint 'T_Person_to_T_Rest'. The conflict occurred in database 'Jabad', table 'T_Rest', column 'BenPerson'.(ну это понятно )
Server: Msg 2627, Level 14, State 1, Line 1
Violation of PRIMARY KEY constraint 'PK_T_Persons'. Cannot insert duplicate key in object 'T_Persons'.
(это почему ругается я же удаляю?)
Server: Msg 3314, Level 21, State 4, Line 1
Error while undoing logged operation in database 'Jabad'. Error at log record ID (8165:1020:2).

Connection Broken
14 дек 09, 09:52    [8061529]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение select  [new]
_djХомяГ
Guest
триггера вероятно срабатывают
14 дек 09, 10:51    [8061967]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение select  [new]
Mari-Salt
Member

Откуда:
Сообщений: 367
iap
Mari-Salt,

свойство IDENTITY не гарантирует уникальность.
Кто-то вставил Иванову с уже существующим ID,
но с другим отчеством. См. SET IDENTITY_INSERT
На ID надо задать CONSTRAINT PRIMARY KEY или CONSTRAINT UNIQUE
или создать UNIQUE INDEX.
После того, как обеспечите уникальность, разумеется.


А как можно идентити изменить?
14 дек 09, 13:46    [8063352]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение select  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mari-Salt


А как можно идентити изменить?

Ув.Mari-Salt. Дублирование одного вопроса в разных темах называется спамом. И может привести к бану
14 дек 09, 13:48    [8063364]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить