¿Crees que lo dice todo?¿Qué mecanismo integrado tiene SQL Server para hacer consultas de retroceso?
Respuesta
Ninguno. SQL Server no tiene una función equivalente.
Ahora que tiene MVCC es realmente sorprendente que no lo haga. –
El equivalente más cercano es probablemente Database Snapshots. Puede crear una instantánea de la base de datos en el momento de su interés y luego informar contra la instantánea. A diferencia de los flashbacks, los momentos en los que se toman las instantáneas de SQL Server deben predeterminarse.
En SQL Server 2008 puede usar la Captura de datos modificados, mediante esta función puede hacer mucho más que volver a recuperar el flash de Oracle. (Hay un procedimiento de almacenamiento para revertir la base de datos en el servidor SQL 2008 si quieres puedo proporcionar eso para usted)
Sí, podemos utilizar Change Data Capture y Change Tracking características que se construyen en los mecanismos en SQL Server y mucho similar a Flashback en Oracle.
Cuando se aplica funciones de captura de datos modificados en una tabla de base de datos, un espejo de la mesa de seguimiento se crea con la misma estructura de la columna de la tabla original, pero con columnas adicionales que incluyen los metadatos utilizados para resumir la naturaleza de el cambio en la fila de la tabla de la base de datos. El DBA de SQL Server puede monitorear fácilmente la actividad de la tabla registrada usando estas nuevas tablas de auditoría.
Seguimiento de cambios es una solución liviana que proporciona un mecanismo eficiente de seguimiento de cambios para las aplicaciones. Por lo general, para permitir que las aplicaciones consulten los cambios en los datos de una base de datos y accedan a información relacionada con los cambios, los desarrolladores de aplicaciones tuvieron que implementar mecanismos de seguimiento de cambios personalizados. La creación de estos mecanismos por lo general implicaba mucho trabajo y con frecuencia implicaba el uso de una combinación de factores desencadenantes, columnas de marca de tiempo, nuevas tablas para almacenar información de seguimiento y procesos de limpieza personalizados.
Los diferentes tipos de aplicaciones tienen requisitos diferentes para la cantidad de información que necesitan sobre los cambios. Las aplicaciones pueden usar el seguimiento de cambios para responder las siguientes preguntas sobre los cambios que se han realizado en una tabla de usuario:
¿Qué filas han cambiado para una tabla de usuario?
Solo se requiere el hecho de que una fila ha cambiado, no cuántas veces ha cambiado la fila o los valores de cualquier cambio intermedio.
Los últimos datos se pueden obtener directamente de la tabla que se está siguiendo.
¿Se ha cambiado una fila?
El hecho de que una fila haya cambiado y la información sobre el cambio debe estar disponible y registrada en el momento en que se realizó el cambio en la misma transacción.
Para obtener más información sobre cómo usar la Captura de datos modificados (CDC) y el Seguimiento de cambios en SQL Server; echa un vistazo a Pinal Dave's Post.
Sé que esta pregunta es bastante antiguo, pero con SQL Server 2016, Tablas temporal es una característica: https://docs.microsoft.com/en-us/sql/relational-databases/tables/temporal-tables
tal vez puede ayudar a otros en caso de que llegar a este tema (Búsqueda de algo similar a la función de Flashback de Oracle)
con tem mesas porales habilitadas, se puede consultar la tabla como de marca de tiempo específico y recuperar filas como lo eran en esa marca de tiempo específico, al igual que lo estaban acostumbrados a hacer en Oracle:
(SELECT * FROM EMPLOYEE AS OF TIMESTAMP ('13-SEP-04 8:50:58','DD-MON-YY HH24: MI: SS')
consulta equivalente en SQL Server para una mesa con SYSTEM_VERSIONING = ON será:
SELECT * FROM EMPLOYEE FOR SYSTEM_TIME AS OF '2004-09-01 08:50:58'
para habilitar SYSTEM_VERSIONING de una tabla existente con filas puede utilizar el siguiente script:
ALTER TABLE [dbo].[TABLE] ADD [SysStartTime] datetime2(0) GENERATED ALWAYS AS ROW START HIDDEN NOT NULL CONSTRAINT DF_Inventory_SysStartTime DEFAULT '1900-01-01 00:00:00', [SysEndTime] datetime2(0) GENERATED ALWAYS AS ROW END HIDDEN NOT NULL CONSTRAINT DF_Inventory_SysEndTime DEFAULT '9999-12-31 23:59:59', PERIOD FOR SYSTEM_TIME ([SysStartTime], [SysEndTime])
ALTER TABLE [dbo].[TABLE] SET (SYSTEM_VERSIONING = ON);
Después de habilitar SYSTEM_VERSIONING, la tabla de historia mostrará debajo de la mesa, donde ha habilitado el control de versiones:
Para Retire SYSTEM_VERSIONING de una tabla:
ALTER TABLE [dbo].[TABLE] SET (SYSTEM_VERSIONING = OFF);
ALTER TABLE [dbo].[TABLE] DROP PERIOD FOR SYSTEM_TIME;
ALTER TABLE [dbo].[TABLE] DROP COLUMN [SysStartTime], [SysEndTime];
Para más información se puede visitar el siguiente enlace (o documentación oficial de Microsoft a la que se hizo referencia anteriormente): http://www.sqlservercentral.com/articles/SQL+Server+2016/147087/
SQL Server 2016 introdujo temporal tables aka history tables que permite a los desarrolladores consultar datos almacenados en una tabla de base de datos en el pasado.
me refiero a los desarrolladores pueden ofrecer aplicaciones que permite a los usuarios visualizar los datos históricos de una tabla o la vista de una tabla en un momento determinado en el pasado
- 1. Analógico integrado de CouchDB, igual que sqlite para SQL Server
- 2. ¡Juega! marco tiene algún mecanismo integrado para evitar el secuestro de la sesión?
- 3. consultas de SQL Server para el Ranking (RowNumber) y Agrupaciones
- 4. ¿hay alguna herramienta de optimización de consultas para SQL Server?
- 5. ¿Tiene PHP un mecanismo integrado para conmutar por error de un servidor de base de datos a otro?
- 6. Particionado para el rendimiento de consultas en SQL Server 2008
- 7. Consultas actualmente en ejecución en SQL Server
- 8. Consultas jerárquicas en SQL Server 2005
- 9. SQL Server Index: ¿alguna mejora para las consultas LIKE?
- 10. Monitor de actividad de SQL Server mostrar todas las consultas
- 11. Práctica consultas SQL
- 12. tiempo específico Rango de consultas en SQL Server
- 13. ¿Cómo unir los resultados de dos consultas en SQL Server?
- 14. ¿Existe un mecanismo integrado para la intercambiabilidad Miles/KM para iPhone?
- 15. acelerador de consultas basado en columnas en SQL Server 2012
- 16. Comprensión de bloqueos de SQL Server en las consultas SELECT
- 17. obtener todas las consultas ejecutadas en SQL Server
- 18. ¿Qué constituye 'CPU alta' para SQL Server
- 19. ¿Cómo encontrar consultas de SQL Server que tomaron mucho tiempo?
- 20. Roles de paréntesis en SQL Server ¿SELECCIONAR consultas?
- 21. BI integrado para ASP.NET
- 22. ¿Por qué ocurren bloqueos en SQL Server?
- 23. Oracle y la función SQL Server evaluación en las consultas
- 24. tecla de retroceso para hacer estallar los espectáculos Fragmento fragmentos
- 25. SQL Server
- 26. ¿Por qué django tiene que usar doble guion bajo al hacer consultas de filtro?
- 27. ¿Las características de SQL Server 2008 Spatial Data son útiles para el mapeo de consultas?
- 28. Cómo escribir Consultas SQL óptimas
- 29. Listar las consultas que se ejecutan en SQL Server
- 30. ¿Hay un SQL Server Profiler para SQL Server Express?
Ahora que SQL Server tiene MVCC debe ser aunque trivial, ¿verdad? –