I would like to create an SQL script that will create triggers on 25 different tables(is it possible?)within a database, the trigger will always be the same except for of course the table name. I tried creating a script using a Cursor (it will be use very infrequently!) but get an error at the Create Trigger statement. If what I’m trying is allowed, can you help me correct my script?
Thanks,
Jim
USE testbase
DECLARE pubnames_cursor CURSOR
FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME like '___Cat'
OPEN pubnames_cursor
DECLARE @tablename sysname
FETCH NEXT FROM pubnames_cursor INTO @tablename
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
SELECT @tablename = RTRIM(@tablename)
---EXEC ('SELECT ''' + @tablename + ''' = count(*) FROM '
CREATE TRIGGER tgInsertTest
ON dbo. + @tablename
FOR INSERT
AS
BEGIN
RAISERROR ('just a test',0,1)
END
--- + @tablename )
---PRINT @tablename
END
FETCH NEXT FROM pubnames_cursor INTO @tablename
END
CLOSE pubnames_cursor
DEALLOCATE pubnames_cursor
Thanks,
Jim
USE testbase
DECLARE pubnames_cursor CURSOR
FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME like '___Cat'
OPEN pubnames_cursor
DECLARE @tablename sysname
FETCH NEXT FROM pubnames_cursor INTO @tablename
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
SELECT @tablename = RTRIM(@tablename)
---EXEC ('SELECT ''' + @tablename + ''' = count(*) FROM '
CREATE TRIGGER tgInsertTest
ON dbo. + @tablename
FOR INSERT
AS
BEGIN
RAISERROR ('just a test',0,1)
END
--- + @tablename )
---PRINT @tablename
END
FETCH NEXT FROM pubnames_cursor INTO @tablename
END
CLOSE pubnames_cursor
DEALLOCATE pubnames_cursor