[dba-SQLServer] Trigger syntax

Mark Breen marklbreen at gmail.com
Tue Jun 12 03:24:57 CDT 2012


Hello Gustav

I have not used triggers extensively, but I am 100% sure they do not
require a reboot to work :)

Guess it is just one of those things.

Mark


On 11 June 2012 12:10, Gustav Brock <gustav at cactus.dk> wrote:

> Hi Mark
>
> The code below was the code generated by the SQL template which is created
> when you add a new trigger.
> As you know, when you run the SQL containing "CREATE ...", the trigger
> itself containing "ALTER ..." is created.
> A trigger for Insert already existed. It is named
> [dbo].[T_VariantsTable_ITrig].
> That's why I chose the name [dbo].[T_VariantsTable_UTrig] for my Update
> trigger.
>
> However, this morning - after my workstation had been closed down for the
> weekend - the issue has vanished. So, for some reason, the new trigger
> hadn't been saved in full - or what? I really did logout and login again
> several times and refreshed "everything". But no reboot. Is that really
> needed?
>
> /gustav
>
>
> >>> marklbreen at gmail.com 11-06-12 10:33 >>>
> Hello Gustav
>
> I just copied your code into SSMS, change the two table names and it
> worked.  It created a trigger on a db here locally on my machine.
>
> The only thing I had to do was change the Alter to a Create.  Would that be
> your problem?
>
> If not, the only other thought that comes to mind is the PPT database the
> one with the table to hold the trigger.  IOW, does the db and table exist?
>
> Sorry I could not help more,
>
> Mark
>
>
> On 8 June 2012 14:08, Gustav Brock <gustav at cactus.dk> wrote:
>
> > Hi all
> >
> > I'm new to triggers but I've managed to create this which works as
> > intended:
> >
> > USE [PPT]
> > GO
> > /****** Object:  Trigger [dbo].[T_VariantsTable_UTrig]    Script Date:
> > 06/08/2012 14:45:17 ******/
> > SET ANSI_NULLS ON
> > GO
> > SET QUOTED_IDENTIFIER ON
> > GO
> > -- =============================================================
> > -- Author:              Gustav Brock
> > -- Create date: 2012-06-08
> > -- Description: Update field Created to time of update of record
> > -- =============================================================
> > ALTER TRIGGER [dbo].[T_VariantsTable_UTrig]
> >   ON [dbo].[VariantsTable]
> >   FOR UPDATE
> > AS
> > BEGIN
> >    -- SET NOCOUNT ON added to prevent extra result sets from
> >    -- interfering with SELECT statements.
> >    SET NOCOUNT ON;
> >
> >    -- Insert statements for trigger here
> >    DECLARE @id INT
> >    DECLARE @now DATETIME
> >
> >    -- Retrieve ID of changed record.
> >    SELECT @id = (SELECT ID FROM deleted)
> >    -- Get current time without milliseconds.
> >    SELECT @now = DATEADD(SECOND, DATEDIFF(SECOND, '20000101', GETDATE()),
> > '20000101')
> >
> >    UPDATE VariantsTable
> >    SET Changed = @now
> >    WHERE ID = @id
> > END
> >
> > However, when I open this in SMMS, this line has the last part red
> > underlined:
> >
> > ALTER TRIGGER [dbo].[T_VariantsTable_UTrig]
> >
> > stating: Invalid object name 'dbo.T_VariantsTable_UTrig'
> >
> > Why is that?
> > I have another trigger created by the Access upsize wizard with similar
> > code:
> >
> > ALTER TRIGGER [dbo].[T_VariantsTable_ITrig]
> >
> > and nothing is underlined here.
> >
> > /gustav
>
> _______________________________________________
> dba-SQLServer mailing list
> dba-SQLServer at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
> http://www.databaseadvisors.com
>
>


More information about the dba-SQLServer mailing list