USE [sig2] GO /****** Object: Trigger [dbo].[cadastro_consultas_insert] Script Date: 31/05/2017 16:25:21 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Fabrício Lisboa Franco -- Create date: 29/05/2017 -- Description: Trigger para criação da view de consultas e tabela temporária -- ============================================= ALTER TRIGGER [dbo].[cadastro_consultas_insert] ON [dbo].[cadastro_consultas] AFTER INSERT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @users_uid INT DECLARE @users_name VARCHAR(256) SELECT @users_uid = users.uid, @users_name = users.name FROM master..sysprocesses p INNER JOIN sys.sysusers users ON users.sid = p.sid WHERE p.spid = @@spid DECLARE @pk INT SELECT @pk = ins.pk FROM inserted ins /* View para (cada view e individual, tem um pk diferente. gerada pela trigger a cada inserção): Obs: pegar id do user, e buscar na tabela usuarios_aux na hora que for inserir */ /* View servirá para: pegar nome do user, inserir nome da view*/ DECLARE @comando nvarchar(MAX) /* variaveis para inserir campos, depois da criação da view */ DECLARE @user_criou nvarchar(256) DECLARE @login nvarchar(256) DECLARE @dadosview nvarchar(256) /* Cria tabela temporaria identica a tabela original inserida */ DECLARE @tabelatemp nvarchar(MAX) SET @tabelatemp = 'SELECT *INTO #TMP_csc00000'+CONVERT(nvarchar(10), @pk)+ ' FROM cadastro_consultas WHERE pk = '+CONVERT(nvarchar(10), @pk) exec sp_executesql @tabelatemp /* Insere nome do usuario que criou, nome da view depois de criada e o getdate depois da criação da tabela temporária SET @dadosview = 'CREATE VIEW [dbo].[csc00000'+CONVERT(varchar(10), @pk)+'] AS INSERT INTO dbo.cadastro_consultas (usuario_criou_nome, nomeview, update_tmp) VALUES('+@login+', csc00000'+CONVERT(varchar(10), @pk)+', '+CONVERT(varchar(50), GETDATE())+') ' exec sp_executesql @dadosview;*/ END GO