| |||
como simular TRIGER Select Tengo la siguiente duda, como puedo hacer para simular un trigger cuando se selecciona una tabla debido a que los trigger solo existen para DELETE , INSERT y UPDATE y necesito hacerlo para cuando alguien seleccione una tabla lo reedireccione a otra, esto es por que en la aplicacion existe en miles de partes la consulta hacia esa tabla, se los agradeceria muchisimo, saludos. |
| |||
Respuesta: como simular TRIGER Select no lo que pasa es que no existe un trigger para cuando alguien selecciona una tabla , lo que quiero es lo siguiente, existe una tabla PERSONAS que cuando alguien haga select * from PERSONAS , REDIRIGIR A ESE USUARIO A OTRAS TABLAS PERSONAS2 , PERSONAS3 , ETC teniendo un propio criterio. esto es simulando que cuando alguien inserta a una tabla es asi: CREATE TRIGGER nombre_trigger ON tabla AFTER UPDATE AS SET NOCOUNT ON validas lo que tengas que validar SET NOCOUNT OFF GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO ------------------------------------ yo lo que quiero es algo que simule esto, yo se que esto no puede ser hecho por medio de trigger pero debe haber una manera de simular esto: CREATE TRIGGER nombre_trigger ON tabla AFTER SELECT AS SET NOCOUNT ON validas lo que tengas que validar SET NOCOUNT OFF GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO |
| |||
Respuesta: como simular TRIGER Select Esta respuesta es buena y ya tengo conosimiento sobre esto, nada mas que mi problema radicaria en lo siguiente tengo una tabla personas pero esa tabla la deseo partir en 2 personas2008 y personas2009 cuando el sistema haga select * from personas where fecha = '2008-01-01' este redireccione a personas2008 o bien cuando el sistema haga select * from personas where fecha = '2009-01-01' este redireccione a personas2009 no se si me di a entender osea los sinonimos si ayudan el problema es como tratar de validar lo que va adentro, por eso comentaba simular un trigger por que despues de una accion, se lleva la validacion y se termina con una respuesta, espero y me ayudes amigo de verdad no sabes cuanto necesito de esta ayuda, gracias. Cita:
Iniciado por matanga A partir de SQL Server 2005 existen los sinónimos.
Código:
Lo que no recuerdo ahora es si una tabla y un sinónimo comparten el mismo namespace, es decir, si pueden haber dos con el mismo nombre, si este no es el caso, tendrás que renombrar la tabla personas.CREATE SYNONYM Personas FOR Personas2 Go SELECT * FROM Personas Go Saludos |
| ||||
Respuesta: como simular TRIGER Select Para resolver este problema existe el particionamiento de tablas e indices, más en particular, particionamiento por rangos, en este caso, rango de fechas. http://msdn.microsoft.com/en-us/libr...6(SQL.90).aspx Saludos |
| ||||
Respuesta: como simular TRIGER Select y si generas una funcion tipo tabla ? como parametro le puedes enviar la fecha a filtrar y con el seleccionar en la tabla indicada... la otra es hacer una vista, donde incluyas una union de tus tablas, si tienes los indices correspondientes no deberias tener problemas...asi se seleccionarian los registros de la tabla correspondiente al parametro del where...solo recuerda utilizar un union all en lugar de union, para que no trate de encontrar los registros distintos... Saludos!
__________________ La sencillez y naturalidad son el supremo y último fin de la cultura... -- MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications. |
| ||||
Respuesta: como simular TRIGER Select Viendo la explicacion de nuestro amigo, no hay mas que decir que mas de una cabeza, piensa mejor. No habia entendido el objetivo, pero ahora si creo que se han volado la barda. Andres95, me has dejado boqui-abierto. Saludos |
| |||
Respuesta: como simular TRIGER Select mmmm pues no se si me entendieran, es como si quisiera simular base de datos distribuidas, como mi aplicacion es demasiado grando modificar eso desde codigo fuente es muy tedioso, pienso hac erlo desde sql, el problema es que andres no se si lo tuyo funcione cuando, se le de select a la tabla principal, ejemplo: cuando mi aplicacion selecciona la tabla principal, esta se redirige a la tabla correspondiente, que estas pueden ser n tablas, andres no se si eso que me digas pueda funcionar en este caso, me gustaria saber si puedes hacer un ejemplo simple para entender tu punto, les agradesco mucho yo se que esto es algo complejo pero asi aprendemos todos saludos. |
| ||||
Respuesta: como simular TRIGER Select claro, la idea es crear una sola vista particionada que pueda accederse en lugar de la enorme tabla original (la tabla original es reemplazada por la vista que contiene una union de las tablas divididas). En la ayuda de sql server viene un ejemplo que agrego a continuacion, lo puedes buscar en el indice como "partitioned views": El campo que utilizarias seria Fecha, en lugar del numero de cliente... En este caso las tablas estan en servidores distintos, pero no hay problema, lo mismo aplica para tablas en la misma base de datos en el mismo server.
Código:
For example, you are partitioning a Customer table into three tables. The CHECK constraint for these tables is: -- On Server1: CREATE TABLE Customer_33 (CustomerID INTEGER PRIMARY KEY CHECK (CustomerID BETWEEN 1 AND 32999), ... -- Additional column definitions) -- On Server2: CREATE TABLE Customer_66 (CustomerID INTEGER PRIMARY KEY CHECK (CustomerID BETWEEN 33000 AND 65999), ... -- Additional column definitions) -- On Server3: CREATE TABLE Customer_99 (CustomerID INTEGER PRIMARY KEY CHECK (CustomerID BETWEEN 66000 AND 99999), ... -- Additional column definitions) ----------------- La vista centralizada seria : ----------------------- CREATE VIEW Customers AS SELECT * FROM CompanyDatabase.TableOwner.Customers_33 UNION ALL SELECT * FROM Server2.CompanyDatabase.TableOwner.Customers_66 UNION ALL SELECT * FROM Server3.CompanyDatabase.TableOwner.Customers_99 GO y se accede directamente con: SELECT * Customers WHERE CustomerID = 2000 Espero te sea de utilidad, Saludos!
__________________ La sencillez y naturalidad son el supremo y último fin de la cultura... -- MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications. |
| ||||
Respuesta: como simular TRIGER Select Esa es la solucion y seria bueno (para todos nosotros, no es para nadie en particular), intentar hacer preguntas de una forma mas explicita, si se pudiera, hasta con ejemplos de lo que se desea obtener. Saludos a todos (ahora estoy atacando el SQL Server 2008) |
| |||
Respuesta: como simular TRIGER Select si eso si funciona y al 100 % pero en ese caso no me conviene desaserme de mi tabla de 49 millones de registros, mejor me quedo con la tabla, ya que las vistas alentarian mucho mas que seleccionar la tabla directamente, igual si funciona para otros remedios yo lo que queria es como una tipo redireccionacion sin tener que tomar todos los registros y hacer mejor la consulta, (no cabe decir que con indices, que ya los tengo) la tabla esta muy bien eficientada el problema es que hay como 8 tablas de ese tamaño todas que son muy usadas en miles de usuarios jeje gracias de todas maneras. |