Gå til innhold

Feilmelding når jeg kjører trigger i Ms Sql


Anbefalte innlegg

Jeg har en trigger i databasen min som gikk greit å lage til. Den skal når jeg setter inn nye data i tabellen oppdatere ett felt i to andre tabeller (instead of Insert så insert)

Men når jeg setter inn nye data i tabellen får jeg feilmelding

 

Error Source: Net SqlClient Data Provider.

Error Message: Invalid Objectname 'updated'

 

Hva betyr denne feilmeldingen og hvordan kan jeg få den bort?

Lenke til kommentar
Videoannonse
Annonse

Sorry, glemmer selvfølgelig det viktigste :whistle: Her er sqlkoden til triggeren

 

USE [Reisebyrå]

GO

/****** Object: Trigger [dbo].[AntallSeterReisende] Script Date: 03/09/2010 08:26:22 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER TRIGGER [dbo].[Plasseropptatt]

ON [dbo].[Reisende] INSTEAD OF INSERT

AS

BEGIN

DECLARE @BookingNr int

DECLARE @MEN nchar(20)

DECLARE @MFN nchar(20)

DECLARE @PersNr nchar(11)

DECLARE @Adr nchar(30)

DECLARE @PNr char(4)

DECLARE @FlyId int

 

SELECT @BookingNr = (SELECT BookingNr) FROM inserted

SELECT @MEN = (SELECT [Medreisendes Etternavn]) FROM Inserted

SELECT @MFN = (SELECT [Medreisendes Fornavn]) FROM Inserted

SELECT @PersNr = (SELECT PersonNr) FROM Inserted

SELECT @Adr = (SELECT Adresse) FROM Inserted

SELECT @PNr = (SELECT PostNr) FROM INSERTED

SELECT @FlyId = (SELECT FlyId) FROM [dbo].[Reise] Where [dbo].[Reise].[bookingNr] = @BookingNr

 

UPDATE [dbo].[Reise] set [Antall Reisende]= [Antall Reisende] + 1

WHERE [dbo].[Reise].[bookingNr] = @BookingNr

 

DECLARE @AntallR int

SELECT @AntallR = (SELECT [Antall Reisende]) FROM [dbo].[Reise].[Antall Reisende]

UPDATE [dbo].[Fly] set [Antall Opptatte Seter] = [Antall Opptatte Seter] + @AntallR

WHERE [dbo].[Fly].[FlyId] = @FlyId

 

Insert into Reisende (BookingNr, [Medreisendes Etternavn], [Medreisendes Fornavn], PersonNr, Adresse, PostNr)

Values (@BookingNr, @MEN, @MFN, @PersNr, @Adr, @PNr)

 

 

END

Lenke til kommentar

Jeg ser ingen umiddelbare feil i triggeren, selv om jeg stusser over hvorfor du bruker en INSTEAD OF trigger i stedet for en AFTER trigger. Dessuten vil ikke triggeren din takle INSERTS av mer enn en rad om gangen.

 

Enten er det definert triggere på de andre tabellene du refererer, eller så er det noe galt i .NET koden din, for det er den som gir deg feilmeldingen ser jeg. Kan du vise meg .NET koden som kjøre INSERT INTO reisende?

 

 

Edit: Nå ser jeg hvorfor du bruker en INSTEAD OF trigger: @FlyId,

Endret av kaffenils
  • Liker 1
Lenke til kommentar

Holder på med databasen i ms sql server managment studio express 2005, men har ikke laget noen .Net kode?

 

Kom litt lenger idag, fjernet alt utenom selve tabellene og relasjonene. Når jeg la innigjen triggeren fikk jeg legge til data i den opprinnelige tabellen, og det ble riktig oppdatert i den ene av de to andre tabellene som skulle oppdateres, mens i den andre er det litt rot, noen ganger blir det registrert, andre ganger ikke, og feil antall :hmm:

Endret av Idnar
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...