3

我正在尝试设置一个 SQL 数据库项目(使用 Visual Studio 2017)。

我希望它创建一个可以在 SQL Server 或 Azure SQL 上运行的 dacpac,将通过一次发布从头开始创建一个数据库。

但是,我遇到了几个问题:

  • 如果没有现有的数据库(和表),我无法创建内存优化表。运行此(SQL Server)时:

    CREATE TABLE [dbo].[TicketReservationDetail] (
        TicketReservationID BIGINT  NOT NULL,
        TicketReservationDetailID BIGINT IDENTITY   NOT NULL,
        Quantity    INT             NOT NULL,
        FlightID    INT             NOT NULL,
        Comment      NVARCHAR (1000),
    
    CONSTRAINT [PK_TicketReservationDetail]  PRIMARY KEY NONCLUSTERED HASH
            ([TicketReservationDetailID]) WITH (BUCKET_COUNT=10000000)
    ) WITH (MEMORY_OPTIMIZED=ON);
    GO
    ALTER DATABASE [$(DatabaseName)] ADD FILEGROUP [mod] CONTAINS MEMORY_OPTIMIZED_DATA
    

它给了我这个:

(63,1): SQL72014: .Net SqlClient Data Provider: Msg 10794, Level 16, State 125, Line 1 The operation 'AUTO_CLOSE' is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
(63,0): SQL72045: Script execution error.  The executed script:
ALTER DATABASE [$(DatabaseName)]
     ADD FILEGROUP [mod] CONTAINS MEMORY_OPTIMIZED_DATA;

An error occurred while the batch was being executed.

但是,如果我先发布一个磁盘表,那么上面的 SQL 就可以正常工作。

我尝试使用预部署脚本来创建磁盘表模式,它发布磁盘表,并在尝试发布实际内存优化表模式时失败。

我使用的示例数据库来自:Ticket-reservations

任何想法或建议将不胜感激。

4

0 回答 0