01. april 2003 - 16:34Der er
7 kommentarer og 2 løsninger
Trigger på hver
Hej
INSERT INTO [NEWDB].[dbo].[UUser]([Username],[Password],[Email]) SELECT [Username], [Password], [Email] FROM [OLDDB].[dbo].[KBUser]
Det her tager alle brugere fra den gamle db og kopiere dem til den nye, fint nok, men jeg har en trigger på den nye tabel, som skal udføres på hver ny record.. men når jeg gør det, udføres triggeren kun på den sidste record :-(
Hvordan får jeg den til at hente alle brugere og så sætte dem ind i den nye enkeltvis..
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
01. april 2003 - 21:46#1
inserted i triggeren indeholder alle de poster som du indsætter med den sætning så du skal nok lave noget loop så du får udført din trigger på alle. Skriv evt. koden til triggeren her så kan det være at nogen kan hjælpe med det :-)
ok, det her er den nye tabel, og den Trigger der hører til.
/***** Table UUser *****/ IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[UUser]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) BEGIN CREATE TABLE [UUser]( [idUUSer] int NOT NULL IDENTITY (1,1), [Username] nvarchar(50) NOT NULL, [Password] nvarchar(50) NOT NULL, [Email] nvarchar(50) NULL, [Created] datetime NOT NULL, [CreatedBy] int NOT NULL DEFAULT(1), [Updated] datetime NOT NULL, [Updatedby] int NOT NULL DEFAULT(1), [idObject] int NULL, PRIMARY KEY ([idUUser])) END Exec sp_bindefault 'Date', '[UUser].Created' Exec sp_bindefault 'Date', '[UUser].Updated' GO
CREATE TRIGGER [TRG_UUser_Ins] ON [UUser] FOR INSERT AS DECLARE @id int, @idObject int
SELECT @id = idUUser FROM inserted
INSERT INTO Object (DocRef) VALUES (1)
SELECT @idObject = @@Identity
UPDATE [UUser] SET idObject = @idObject WHERE idUUser = @id
INSERT INTO [Object_Right]([idObject_Control],[idObject_Item],[idRight],[idStatus]) VALUES (1,@idObject,1,1) INSERT INTO [Object_Right]([idObject_Control],[idObject_Item],[idRight],[idStatus]) VALUES (1,@idObject,2,1)
INSERT INTO [Object_Right]([idObject_Control],[idObject_Item],[idRight],[idStatus]) VALUES (@idObject,@idObject,1,1) INSERT INTO [Object_Right]([idObject_Control],[idObject_Item],[idRight],[idStatus]) VALUES (@idObject,@idObject,2,1) GO
Du kunne jo evt. også efter du har overført dem i den nye tabel, bare udføre dine sql'er manuelt og så bagefter sætte triggeren til igen for at bevare integriteten !
ok, nu virker det, skulle lige ændre lidt småting, men nu virker det efter hensigten.
/Weje
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.