powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Модификация данных с помощью Update
9 сообщений из 9, страница 1 из 1
Модификация данных с помощью Update
    #32035141
Roman M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу в Query Analyzer:
Update table1
set column1 = column1+1
Все работает.

Пишу то же самое в триггере:

Create Trigger Table2_Trigger
On dbo.Table2
For Insert, Update, Delete
As
update Table1
set Column1 = Column1+1

Выдает следующее:
Key column information is insufficient or incorrect. Too many rows were affected by update.

Почему в Query Analyzer это работает, а то же самое в триггере - не хочет?
...
Рейтинг: 0 / 0
Модификация данных с помощью Update
    #32035150
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведенный пример у меня работает. Может, ты слишком упростил код, когда привел его здесь?
...
Рейтинг: 0 / 0
Модификация данных с помощью Update
    #32035151
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эту ошибку выдает не триггер, а то клиентское средство, которым ты выполняешь запрос. С триггером все в порядке, а с этим клиентским приложением - нет. Но ему можно мозги вправить, если в триггере первой строчкой поставить SET NOCOUNT ON.
...
Рейтинг: 0 / 0
Модификация данных с помощью Update
    #32035156
Roman M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура, заработало после того как вставил строку
SET NOCOUNT ON
Спасибо, Dankov!!!!!!!!
...
Рейтинг: 0 / 0
Модификация данных с помощью Update
    #32035165
Roman M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И сразу наткнулся на новую проблему
после того как добавил WHERE:

Create Trigger Table2_Trigger
On dbo.Table2
For Insert, Update, Delete
As
SET NOCOUNT ON
update Table1
set Column1 = Column1+1
Where Column1>5

Ругается, что подзапрос возвращает более 1 значения.
Если ">" поменять на "=", то не ругается.

Это, похоже, никак не победить???
...
Рейтинг: 0 / 0
Модификация данных с помощью Update
    #32035176
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то Вы не дгоовариваете....

Вот так работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
use tempdb
go
create table t1( k int primary key clustered, v int )
go
insert into t1 (k, v) values ( 1 ,  101 )
insert into t1 (k, v) values ( 2 ,  102 )
insert into t1 (k, v) values ( 3 ,  103 )
insert into t1 (k, v) values ( 4 ,  104 )
go
select * from t1
update t1
set v = v +  1 
where v>  101 
select * from t1
go
drop table t1

И в триггере будет работать...
...
Рейтинг: 0 / 0
Модификация данных с помощью Update
    #32035212
Roman M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, alexeyvg, вы правы.

Я не договариваю следующее:

В таблице Table1 имеются триггеры, которые срабатывают на изменение в столбце Column1.
В этом, видимо, и собака зарыта.

Пробовал изменять данные в другой таблице, без триггеров. Все работает.
...
Рейтинг: 0 / 0
Модификация данных с помощью Update
    #32035273
olegusan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня такое подозрение, что у таблички Table1
отсутствует Primary Key.
От этого и проблемы.
...
Рейтинг: 0 / 0
Модификация данных с помощью Update
    #32035297
Roman M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я, olegusan, не считаю себя суперпрограммистом, но и до такой степени чайником тоже не считаю.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Модификация данных с помощью Update
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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