我正在尝试设置一个 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
任何想法或建议将不胜感激。