2

J'utilise la dernière version de SQL Server 2016 Developer Edition et SSMS (13.0.15600.2).BOGUE possible avec importation BACPAC et tables temporelles

Il existe un bogue possible dans l'importation de l'application de niveau de données (bacpac) qui contient des tables temporelles et tout objet (fonction. View) qui les référence avec 'WITH SCHEMABINDING'.

Il est parfaitement possible d'exporter cette base de données à Backpac mais quand il réimporter - il y a une erreur:

Error SQL72014: .Net SqlClient Data Provider: Msg 3729, Level 16, State 4, Line 1 Cannot ALTER 'Table2Version' because it is being referenced by object 'BindTest'. Error SQL72045: Script execution error. The executed script: ALTER TABLE [dbo].[Table2Version] SET (SYSTEM_VERSIONING = OFF);

Le script de création DB le plus petit qui reproduira ce problème est:

USE [master] 
GO 


CREATE DATABASE [temptest] 
GO 


ALTER DATABASE [temptest] SET COMPATIBILITY_LEVEL = 130 
GO 


USE [temptest] 
GO 


CREATE SCHEMA [History] 
GO 


CREATE TABLE [History].[Table2Version](
    [Id] [int] NOT NULL, 
    [Name] [nvarchar](50) NULL, 
    [SysStartTime] [datetime2](0) NOT NULL, 
    [SysEndTime] [datetime2](0) NOT NULL 
) ON [PRIMARY] 


GO 


CREATE CLUSTERED INDEX [ix_Table2Version] ON [History].[Table2Version] 
([SysEndTime] ASC, [SysStartTime] ASC) 
GO 


SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
CREATE TABLE [dbo].[Table2Version](
    [Id] [int] NOT NULL, 
    [Name] [nvarchar](50) NULL, 
    [SysStartTime] [datetime2](0) GENERATED ALWAYS AS ROW START HIDDEN NOT NULL, 
    [SysEndTime] [datetime2](0) GENERATED ALWAYS AS ROW END HIDDEN NOT NULL, 
    CONSTRAINT [PK__Table2Version] PRIMARY KEY NONCLUSTERED ([Id] ASC), 
    PERIOD FOR SYSTEM_TIME ([SysStartTime], [SysEndTime]) 
) ON [PRIMARY] 
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = [History].[Table2Version] , DATA_CONSISTENCY_CHECK = ON)) 


GO 


CREATE FUNCTION [dbo].[BindTest]() 
RETURNS TABLE 
WITH SCHEMABINDING  
AS  
RETURN SELECT Id AS id 
from dbo.Table2Version ; 



GO 

Est-ce vraiment un bug ou je fais quelque chose de mal?

Répondre