Код ошибки триггера SQL -- sql-server поле с участием tsql поле с участием triggers пол Связанный проблема

SQL Trigger Error Code


0
vote

проблема

русский

Я пытаюсь разработать триггер SQL Server, но, похоже, это выбрасывает для меня ошибку, когда я обновляю записи, которые имеют одинаковые значения с помощью значения ключевого слова Trigger, но если только одна запись, которая соответствует этому значению, это не выбрасывает ошибку.

Код ошибки:

В отношении триггера, который я работаю для SNL, кажется, что он выпускает ошибку: подзапрос вернул более 1 значение. Это не допускается, когда подзапрос следует =,! =, & Lt ;, & gt; = или когда подзапрос используется в качестве выражения. Заявление было прекращено.

Код триггера:

 <код> USE [TestTrigger] GO /****** Object:  Trigger [dbo].[TestTrigger]    Script Date: 06/04/2015 08:29:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[TestTRigger]    ON  [dbo].[SN_Contact2]    FOR INSERT,UPDATE AS  BEGIN          DECLARE @IDSTATUS varchar(254)         DECLARE @CONTACTID VARCHAR(36)         DECLARE @CLIENTURL nvarchar(254)         set @CONTACTID = (select contact_contactid from inserted)         set @IDSTATUS = (select contact_category from inserted)         set @CLIENTURL = (select CUST_1004 from inserted)          IF @IDSTATUS = 'Client'         BEGIN                                  update sn_contact2 set CUST_ID_Status_Change_Date = getdate()                 where CUST_Main_Contact = 'X' and cust_id_status_change_date is null                 and CUST_1004 = @CLIENTURL         END   END   

Любые мысли?

Английский оригинал

I am trying to develop an SQL Server trigger but it seems to be throwing off an error for me when I update records that have the same values with the trigger keyword value, but if its just one record that matches that value, it is not throwing off an error.

Error code:

In regards to a trigger that I am developing for SNL, it seems it is producing an error: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. The statement has been terminated.

Trigger Code:

USE [TestTrigger] GO /****** Object:  Trigger [dbo].[TestTrigger]    Script Date: 06/04/2015 08:29:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[TestTRigger]    ON  [dbo].[SN_Contact2]    FOR INSERT,UPDATE AS  BEGIN          DECLARE @IDSTATUS varchar(254)         DECLARE @CONTACTID VARCHAR(36)         DECLARE @CLIENTURL nvarchar(254)         set @CONTACTID = (select contact_contactid from inserted)         set @IDSTATUS = (select contact_category from inserted)         set @CLIENTURL = (select CUST_1004 from inserted)          IF @IDSTATUS = 'Client'         BEGIN                                  update sn_contact2 set CUST_ID_Status_Change_Date = getdate()                 where CUST_Main_Contact = 'X' and cust_id_status_change_date is null                 and CUST_1004 = @CLIENTURL         END   END 

Any thoughts?

</div
        

Список ответов

2
 
vote

Это линии неисправности .. Когда обновляется более 1 записей / вставлена ​​через один запрос, вы получите эту ошибку (в качестве дополнительного запроса возвращается более 1 значение.).

 <код> M_PI8  

Измените запрос обновления из одного рядного обновления на что-то вроде:

 <код> M_PI9  
 

These are the fault lines.. when more than 1 records are updated/inserted through a single query, you will get this error (as sub query is returning more than 1 value..).

set @CONTACTID = (select contact_contactid from inserted) set @IDSTATUS = (select contact_category from inserted) set @CLIENTURL = (select CUST_1004 from inserted) 

change your update query from a single row update to something like :

update sn_contact2 set CUST_ID_Status_Change_Date = getdate()                 where CUST_Main_Contact = 'X' and cust_id_status_change_date is null                 and CUST_1004 --= @CLIENTURL in ( select CUST_1004 from inserted where contact_category = 'Client' ) 
</div
 
 
 
 

Связанный проблема

141  Получение только месяц и год от даты SQL  ( Getting only month and year from sql date ) 
Мне нужно добраться только к месяцу. Возникновение из поля даты в SQL Server. ...

28  SQL Server: Как использовать совокупную функцию, такую ​​как Max в пункте, где  ( Sql server how to use an aggregate function like max in a where clause ) 
Я хочу получить максимальное значение для этой записи. Пожалуйста, помогите мне: <код> SELECT rest.field1 FROM mastertable AS m INNER JOIN ( ...

1  Запрос содержащий логику  ( Query containing logic ) 
<код> empno emailID -------------------- 1 A@gm.com 2 B@gm.com 3 C@gm.com 2 BB@gm.com 1 AA@gm.com 1 ...

0  Как создать просмотр, листья всей дружбы для таблицы «Friend1, Frim2» в T-SQL и предотвратить вставлять дубликаты?  ( How to create view listing all friendship for friend1 friend2 table in t sql a ) 
У меня есть таблица, определяемая следующим образом: <код> CREATE TABLE [dbo].[Friendships] ( [friendship_id] INT NOT NULL, [friend1] INT NOT...

5  Создание экземпляра базы данных в C #  ( Creating a database instance in c sharp ) 
Можно ли создать экземпляр базы данных SQL с C # код. У меня нет проблем с добавлением базы данных к существующему экземпляру SQL, например Wonea Sqlexpress,...

0  Как настроить SQL Server Max Использование памяти  ( How to configure sql server max memory usage ) 
Я использую Enterprise SQL Server 2008. SQL Server 2008 всегда пытается съесть как можно больше памяти. Любые способы настроить в базу данных или на экземпляр...

1  Выполнить файл SQL, возвращать результаты как Pandas DataFrame  ( Execute sql file return results as pandas dataframe ) 
У меня есть сложный запрос SQL Server, который я хотел бы выполнить из Python и вернуть результаты в виде файла PandaFrame. Моя база данных читается только ...

2  CTE с динамическим запросом  ( Cte with dynamic query ) 
У меня есть динамический запрос, который я звоню, и я помещаю результат набор в переменной таблице <код> INSERT INTO @outTable EXEC sp_executesql @query; ...

38  SQL Server тупики между выбором / обновлением или несколькими выборами  ( Sql server deadlocks between select update or multiple selects ) 
Вся документация на сервере SQL Server Toblocks рассказывает о сценарии, в котором операция 1 блокирует ресурс a, затем пытается получить доступ к ресурсу B и...

35  Оператор резервного копирования командной строки SQL Server  ( Sql server command line backup statement ) 
Один из них знает, есть ли способ сценария резервного копирования SQL Server в пакетном файле, чтобы он мог выполнен из командной строки? ...

0  Как узнать из SQLException, если подключение к SQL Server не удалось? [Дубликат]  ( How to know from sqlexception if connecting to sql server failed ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

1  C # код для объемного обновления SQL Server  ( C sharp code to bulk update sql server ) 
У нас есть этот код C #, который будет обновлять таблицу базы данных SQL Server на основе флагов в структуре. <код> public struct stSRK { public string...

1  Как сопоставить две поля электронной почты, где один содержит дружественный адрес электронной почты  ( How to match two email fields where one contains friendly email address ) 
Одна таблица имеет «<код> s1 --1--1--1--| s2 ---2---2---2| r --12-1-21--2| 3 », а другой имеет «код> s1 --1--1--1--| s2 ---2---2---2| r --12-1-21--2| 4 ». С...

66  SQL Server - Запуск больших файлов сценариев  ( Sql server running large script files ) 
У меня есть таблица базы данных на сервере разработки, который теперь полностью заполнен после того, как установил его, работающий с процедурой импорта для фа...

2890  Добавьте столбец с значением по умолчанию на существующую таблицу в SQL Server  ( Add a column with a default value to an existing table in sql server ) 
Как я могу добавить столбец с значением по умолчанию на существующую таблицу в SQL Server 2000 / SQL Server 2005 ? ...

Связанный проблема

141  Получение только месяц и год от даты SQL 
28  SQL Server: Как использовать совокупную функцию, такую ​​как Max в пункте, где 
1  Запрос содержащий логику 
0  Как создать просмотр, листья всей дружбы для таблицы «Friend1, Frim2» в T-SQL и предотвратить вставлять дубликаты? 
5  Создание экземпляра базы данных в C # 
0  Как настроить SQL Server Max Использование памяти 
1  Выполнить файл SQL, возвращать результаты как Pandas DataFrame 
2  CTE с динамическим запросом 
38  SQL Server тупики между выбором / обновлением или несколькими выборами 
35  Оператор резервного копирования командной строки SQL Server 
0  Как узнать из SQLException, если подключение к SQL Server не удалось? [Дубликат] 
1  C # код для объемного обновления SQL Server 
1  Как сопоставить две поля электронной почты, где один содержит дружественный адрес электронной почты 
66  SQL Server - Запуск больших файлов сценариев 
2890  Добавьте столбец с значением по умолчанию на существующую таблицу в SQL Server 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.