Aquest error es pot produir per diversos motius, per fer un update d'una fila mentre tens un query obert sobre la mateixa taula o fent modificacions amb triggers que modifiquin la mateixa taula, però el cas més extrany és el que ens pertoca. També es podrueix quan tens un trigger i dins d'aquest es realitza un
SELECT, si aquesta instrucció no retorna cap valor MSSQL genera un error intern. No hi hauria cap problema si
ADO no interpretés l'error intern com un error greu. De fet, surt el següent missatge d'error:


Per solucionar aquest tipus d'error, hem d'afegir al trigger el següent codi
SET NOCOUNT ON a l'inici i
SET NOCOUNT OFF al final. Llavors el codi quedaria de la següent forma:
CREATE TRIGGER [dbo].[XXXXX]
ON [dbo].[Taula1]
FOR INSERTASBEGIN IF (
SELECT COUNT(*)
FROM INSERTED) > 0
BEGIN SET NOCOUNT ON INSERT INTO Taula2(
Camp1,
Camp2,
Camp3 )
SELECT ins.Camp1,
ins.Camp3,
ins.Camp4
FROM INSERTED ins
WHERE (ins.Camp2 <>
'S')
AND (
ISNULL(ins.Camp6, 0) > 0.001)
SET NOCOUNT OFF ENDEND