我有一个(SSDT) .sqlproj文件,其中包含如下表类型:
CREATE TYPE [dbo].[tableType] AS TABLE
(
[id] uniqueidentifier INDEX [idx],
)
WITH
(MEMORY_OPTIMIZED = ON); 我正在将这个项目部署到Azure SQL中。问题是,我的测试数据库是Azure SQL标准(而不是高级或关键业务)。因此,它们不支持内存优化的表。因此,我试图找出一种方法来部署类型,而不需要测试中的内存优化,以及生产中的内存优化。命令行开关,env变量,什么都行。我正在使用sqlpackage.exe进行部署,但我愿意使用其他方法来实现这一点。
发布于 2019-08-20 08:40:39
由于这是针对特定环境的,我建议您选择以下方法之一:
你可以有三种方法:
IF '$(Environment)' = 'Prod'
BEGIN
:r .\ProdSpecificScript\Prod_TableTable.sql
END
ELSE
BEGIN
:r .\NonProdSpecificScript\NonProd_TableTable.sql
END <Target Name="BeforeBuild">
<Message Text="Copy files task running for configuration: $(Configuration)" Importance="high" />
<Copy Condition=" '$(Environment)' == 'Prod' " SourceFiles="Scripts\Post-Deployment\Default.Script.PostDeployment.sql" DestinationFiles="Scripts\Post-Deployment\Script.PostDeployment.sql" OverwriteReadOnlyFiles="true" />
<Copy Condition=" '$(Environment)' == 'NonProd' " SourceFiles="Scripts\Post-Deployment\Default.Script.PostDeployment.sql" DestinationFiles="Scripts\Post-Deployment\Script.PostDeployment.sql" OverwriteReadOnlyFiles="true" />
</Target>DECLARE @ServiceTier VARCHAR(30)
SET @ServiceTier = (SELECT COALESCE(DATABASEPROPERTYEX(DB_NAME(), 'ServiceObjective'), 'N/A in v11') AS AzureTier FROM sys.database_service_objectives
IF @ServiceTier = 'P1'
BEGIN
:r .\ProdSpecificScript\Prod_TableTable.sql
END
ELSE
BEGIN
:r .\NonProdSpecificScript\NonProd_TableTable.sql
ENDhttps://stackoverflow.com/questions/57566846
复制相似问题