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

Откуда: Київ
Сообщений: 10428
SQL2012

Отработал скрипт, создавший таблицу n7,
далее пытаюсь связать n7 с существующей мастер таблицей n по ПК->ФК

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_n7_n]') AND parent_object_id = OBJECT_ID(N'[dbo].[n7]'))
ALTER TABLE [dbo].[n7]  WITH NOCHECK ADD  CONSTRAINT [FK_n7_n] FOREIGN KEY([id])
REFERENCES [dbo].[n] ([id])
ON DELETE CASCADE
GO


Результат:

Msg 1205, Level 13, State 56, Line 2
Transaction (Process ID 56) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Msg 1750, Level 16, State 0, Line 2
Could not create constraint. See previous errors.


В активити мониторе только один процесс, работающий с этой базой, и то - мой, 56.
Но dbcc opentran показывает

Transaction information for database 'dog931'.

Oldest active transaction:
    SPID (server process ID): 31s
    UID (user ID) : -1
    Name          : user_transaction
    LSN           : (27340:3584:1)
    Start time    : Jul 30 2013  8:07:51:803AM
    SID           : 0x0105000000000005150000004fc004c451fc2b38086fe669f4010000
DBCC execution completed. If DBCC printed error messages, contact your system administrator.



причем, то 31, то 17, но такого процесса в активити мониторе нету, но при выборке

select * from sys.sysprocesses

получаю:

17 CLR_MANUAL_EVENT                
...
31 CLR_MANUAL_EVENT   



и как с этой фигней бороться? и как связать таблицы?

Да, в базе есть брокер, и я удалил рубликацию репликации и после этого рестартонул сервер.
30 июл 13, 10:14    [14635763]     Ответить | Цитировать Сообщить модератору
 Re: Не создается constraint из-за блокировки  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Winnipuh,

просто ALTER TABLE если попробовать?
30 июл 13, 10:19    [14635787]     Ответить | Цитировать Сообщить модератору
 Re: Не создается constraint из-за блокировки  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
Winnipuh,

просто ALTER TABLE если попробовать?


на каждую отдельно сделал так:

ALTER TABLE [dbo].[n7] add test int null;
ALTER TABLE [dbo].[n] add test int null;


всё прошло.
30 июл 13, 10:24    [14635819]     Ответить | Цитировать Сообщить модератору
 Re: Не создается constraint из-за блокировки  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
а дальше веселее, удаляю тестовые колонки

ALTER TABLE [dbo].[n7] drop column test; -- ОК
ALTER TABLE [dbo].[n] drop column test; -- та же ошибка с блокировкой

Msg 1205, Level 13, State 56, Line 1
Transaction (Process ID 56) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
30 июл 13, 10:28    [14635842]     Ответить | Цитировать Сообщить модератору
 Re: Не создается constraint из-за блокировки  [new]
Гость333
Member

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

А граф взаимоблокировки что говорит?
30 июл 13, 10:42    [14635937]     Ответить | Цитировать Сообщить модератору
 Re: Не создается constraint из-за блокировки  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Гость333
Winnipuh,

А граф взаимоблокировки что говорит?


всё, спасибо, вопрос снят, брокер обрабатывает то, что не было обработано за вчера... но выскакивает так, что активити монитор не показывает....
30 июл 13, 10:49    [14635988]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить