Compartir a través de


Tutorial: Viaje en el tiempo mediante T-SQL en el nivel de instrucción

En este artículo, aprenderá a viajar en el tiempo en el almacenamiento en el nivel de instrucción mediante T-SQL. Esta característica le permite consultar los datos tal como aparecieron en el pasado dentro de un período de retención.

Nota:

Actualmente, solo se usa la zona horaria de hora universal coordinada (UTC) para el viaje en el tiempo.

Viaje en el tiempo

En este ejemplo, actualizaremos una fila y mostraremos cómo consultar fácilmente el valor anterior mediante la sugerencia de consulta FOR TIMESTAMP AS OF.

  1. En la pestaña Inicio de la cinta de opciones, seleccione Nueva consulta SQL.

    Captura de pantalla del portal de Fabric del botón Nueva consulta SQL.

  2. En el editor de consultas, pegue el código siguiente para crear la vista Top10CustomerView. Seleccione Ejecutar para ejecutar la consulta.

    CREATE VIEW dbo.Top10CustomersView
    AS
    SELECT TOP (10)
        FS.[CustomerKey],
        DC.[Customer],
        SUM(FS.TotalIncludingTax) AS TotalSalesAmount
    FROM
        [dbo].[dimension_customer] AS DC
    INNER JOIN
        [dbo].[fact_sale] AS FS ON DC.[CustomerKey] = FS.[CustomerKey]
    GROUP BY
        FS.[CustomerKey],
        DC.[Customer]
    ORDER BY
        TotalSalesAmount DESC;
    
  3. En el Explorador, compruebe que puede ver la vista Top10CustomersView recién creada expandiendo el nodo Vista en el esquema dbo.

    Captura de pantalla de la imagen del usuario.

  4. Cree otra nueva consulta, similar a la del paso 1. En la pestaña Inicio de la cinta de opciones, seleccione Nueva consulta SQL.

  5. En el editor de consultas, pegue el siguiente código. Con esta acción se actualiza el valor de columna TotalIncludingTax a 200000000 para el registro que tiene el valor SaleKey de 22632918. Seleccione Ejecutar para ejecutar la consulta.

    /*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/
    UPDATE [dbo].[fact_sale]
    SET TotalIncludingTax = 200000000
    WHERE SaleKey = 22632918;
    
  6. En el editor de consultas, pegue el siguiente código. La función CURRENT_TIMESTAMP de T-SQL devuelve la marca de tiempo UTC actual como datetime. Seleccione Ejecutar para ejecutar la consulta.

    SELECT CURRENT_TIMESTAMP;
    
  7. Copie el valor de marca de tiempo devuelto al Portapapeles.

  8. Pegue el código siguiente en el editor de consultas y reemplace el valor de marca de tiempo por el valor de marca de tiempo actual obtenido del paso anterior. El formato de sintaxis de marca de tiempo es YYYY-MM-DDTHH:MM:SS[.FFF].

  9. Quite los ceros finales, por ejemplo: 2024-04-24T20:59:06.097.

  10. En el ejemplo siguiente se devuelve la lista de los diez principales clientes por TotalIncludingTax, incluido el nuevo valor de SaleKey 22632918. Seleccione Ejecutar para ejecutar la consulta.

    /*View of Top10 Customers as of today after record updates*/
    SELECT *
    FROM [WideWorldImporters].[dbo].[Top10CustomersView]
    OPTION (FOR TIMESTAMP AS OF '2024-04-24T20:59:06.097');
    
  11. Pegue el código siguiente en el editor de consultas y reemplace el valor de marca de tiempo a un momento anterior a la ejecución del script de actualización para actualizar el valor TotalIncludingTax. Esto devolvería la lista de los diez principales clientes antes de que TotalIncludingTax se actualizara para SaleKey 22632918. Seleccione Ejecutar para ejecutar la consulta.

    /*View of Top10 Customers as of today before record updates*/
    SELECT *
    FROM [WideWorldImporters].[dbo].[Top10CustomersView]
    OPTION (FOR TIMESTAMP AS OF '2024-04-24T20:49:06.097');
    

Para obtener más ejemplos, visite Procedimiento para realizar consultas mediante el viaje en el tiempo en el nivel de instrucción.

Paso siguiente