Sql server 发布到SQL Azure失败,错误为';无法删除外部数据源';消息
我的解决方案中有一个SQL项目(.sqlproj),目标平台为“Microsoft Azure SQL数据库V12” 最近,我添加了一个Sql server 发布到SQL Azure失败,错误为';无法删除外部数据源';消息,sql-server,azure,azure-sql-database,sqlproj,Sql Server,Azure,Azure Sql Database,Sqlproj,我的解决方案中有一个SQL项目(.sqlproj),目标平台为“Microsoft Azure SQL数据库V12” 最近,我添加了一个外部数据源和几个针对该数据源的外部表 ExternalCSVLists.sql文件: CREATE EXTERNAL DATA SOURCE [ExternalCSVLists] WITH ( TYPE = RDBMS, LOCATION = 'location.windows.net', DATABASE_NAME = '$(CSV
外部数据源
和几个针对该数据源的外部表
ExternalCSVLists.sql文件:
CREATE EXTERNAL DATA SOURCE [ExternalCSVLists] WITH
(
TYPE = RDBMS,
LOCATION = 'location.windows.net',
DATABASE_NAME = '$(CSVLists)',
CREDENTIAL = RemoteConnectionCredential
)
外部表的示例(IntegerListContent.sql文件)
第一次出版还行
现在,当我再次发布时(没有对任何外部表或数据源进行任何更改),我收到以下错误:
正在删除[ExternalCSVLists]。。。
(415,1):SQL72014:.Net SqlClient数据提供程序:Msg 33165,级别16,状态1,第1行无法删除外部数据源“ExternalCSVLists”,因为它被外部表使用
我检查了发布脚本,发现它试图删除并创建外部数据源。跳过外部表(这可能是正常的,因为我没有更改它们)
所以
1) 当所有这些数据源都与已经发布的数据源相同时,为什么会产生一个drop external data source
语句
2) 那么为什么它会忽略依赖的外部表
我的发布设置几乎都是默认设置(“删除”选项卡中的任何选项都未选中)。谢谢 我遇到了同样的问题;不幸的是,我无法理解为什么这个问题首先会产生 但解决办法是引入一个预先部署步骤,放弃所有
- 桌子和
- 观点
引用了外部数据源的。。。我本希望DACPAC能够独立完成这项工作;但我想我们生活在一个不完美的世界。我也有这个问题。作为一种解决方法,您还可以使用:
/p:DoNotDropObjectTypes=ExternalDataSources
但是,只有在外部数据源中没有任何更改时,它才起作用
我打开了一个反馈。如果您愿意,您可以支持该案例。我采用了上述方法,并在我的DevOps发布管道中实现了这一点:
真的
假的
真的
真的
真的
真的
真的
真的
1.
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
假的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
真的
假的
真的
真的
真的
真的
真的
真的
1.
真的
真的
真的
真的
真的
CREATE EXTERNAL TABLE [WebApp].[IntegerListContent]
(
[ListId] INT,
[Value] int
)
WITH
(
DATA_SOURCE = [ExternalCSVLists]
)
declare @sql as nvarchar(max)
; with cmds as (
select
CONCAT('drop external table ' ,QUOTENAME(OBJECT_SCHEMA_NAME(t.object_id)) , '.' , QUOTENAME(OBJECT_NAME(t.object_id))) as Cmd
from sys.external_tables t
union all
select
'drop external data source ' + QUOTENAME(s.name)
from sys.external_data_sources s
)
select @sql= STRING_AGG(cmd,';')
from cmds
print @sql
if(len(@sql) > 0)
begin
exec sp_executesql @sql
end
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseName></TargetDatabaseName>
<DeployScriptFileName></DeployScriptFileName>
<BlockOnPossibleDataLoss>False</BlockOnPossibleDataLoss>
<GenerateSmartDefaults>True</GenerateSmartDefaults>
<DropObjectsNotInSource>True</DropObjectsNotInSource>
<DoNotDropPermissions>True</DoNotDropPermissions>
<DoNotDropRoleMembership>True</DoNotDropRoleMembership>
<DoNotDropUsers>True</DoNotDropUsers>
<IgnoreColumnOrder>True</IgnoreColumnOrder>
<ProfileVersionNumber>1</ProfileVersionNumber>
<ExcludeAggregates>True</ExcludeAggregates>
<ExcludeApplicationRoles>True</ExcludeApplicationRoles>
<ExcludeAssemblies>True</ExcludeAssemblies>
<ExcludeAsymmetricKeys>True</ExcludeAsymmetricKeys>
<ExcludeAudits>True</ExcludeAudits>
<ExcludeBrokerPriorities>True</ExcludeBrokerPriorities>
<ExcludeCertificates>True</ExcludeCertificates>
<ExcludeClrUserDefinedTypes>True</ExcludeClrUserDefinedTypes>
<ExcludeColumnEncryptionKeys>True</ExcludeColumnEncryptionKeys>
<ExcludeColumnMasterKeys>True</ExcludeColumnMasterKeys>
<ExcludeContracts>True</ExcludeContracts>
<ExcludeCryptographicProviders>True</ExcludeCryptographicProviders>
<ExcludeDatabaseAuditSpecifications>True</ExcludeDatabaseAuditSpecifications>
<ExcludeDatabaseRoles>True</ExcludeDatabaseRoles>
<ExcludeDatabaseTriggers>True</ExcludeDatabaseTriggers>
<ExcludeDefaults>True</ExcludeDefaults>
<ExcludeEndpoints>True</ExcludeEndpoints>
<ExcludeErrorMessages>True</ExcludeErrorMessages>
<ExcludeEventNotifications>True</ExcludeEventNotifications>
<ExcludeEventSessions>True</ExcludeEventSessions>
<IgnoreExtendedProperties>True</IgnoreExtendedProperties>
<ExcludeExternalDataSources>False</ExcludeExternalDataSources>
<ExcludeFileTables>True</ExcludeFileTables>
<ExcludeFilegroups>True</ExcludeFilegroups>
<ExcludeFullTextCatalogs>True</ExcludeFullTextCatalogs>
<ExcludeFullTextStoplists>True</ExcludeFullTextStoplists>
<ExcludeLinkedServerLogins>True</ExcludeLinkedServerLogins>
<ExcludeLinkedServers>True</ExcludeLinkedServers>
<ExcludeLogins>True</ExcludeLogins>
<ExcludePartitionFunctions>True</ExcludePartitionFunctions>
<ExcludeMessageTypes>True</ExcludeMessageTypes>
<ExcludePartitionSchemes>True</ExcludePartitionSchemes>
<IgnorePermissions>True</IgnorePermissions>
<ExcludeQueues>True</ExcludeQueues>
<ExcludeRemoteServiceBindings>True</ExcludeRemoteServiceBindings>
<IgnoreRoleMembership>True</IgnoreRoleMembership>
<ExcludeRoutes>True</ExcludeRoutes>
<ExcludeRules>True</ExcludeRules>
<ExcludeScalarValuedFunctions>True</ExcludeScalarValuedFunctions>
<ExcludeSearchPropertyLists>True</ExcludeSearchPropertyLists>
<ExcludeSecurityPolicies>True</ExcludeSecurityPolicies>
<ExcludeSequences>True</ExcludeSequences>
<ExcludeServerAuditSpecifications>True</ExcludeServerAuditSpecifications>
<ExcludeServerRoleMembership>True</ExcludeServerRoleMembership>
<ExcludeServerRoles>True</ExcludeServerRoles>
<ExcludeServerTriggers>True</ExcludeServerTriggers>
<ExcludeServices>True</ExcludeServices>
<ExcludeSignatures>True</ExcludeSignatures>
<ExcludeStoredProcedures>True</ExcludeStoredProcedures>
<ExcludeSymmetricKeys>True</ExcludeSymmetricKeys>
<ExcludeSynonyms>True</ExcludeSynonyms>
<ExcludeTableValuedFunctions>True</ExcludeTableValuedFunctions>
<ExcludeTables>True</ExcludeTables>
<ExcludeUserDefinedDataTypes>True</ExcludeUserDefinedDataTypes>
<ExcludeUserDefinedTableTypes>True</ExcludeUserDefinedTableTypes>
<ExcludeUsers>True</ExcludeUsers>
<ExcludeViews>True</ExcludeViews>
<ExcludeXmlSchemaCollections>True</ExcludeXmlSchemaCollections>
<ExcludeCredentials>True</ExcludeCredentials>
</PropertyGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseName></TargetDatabaseName>
<DeployScriptFileName></DeployScriptFileName>
<BlockOnPossibleDataLoss>False</BlockOnPossibleDataLoss>
<GenerateSmartDefaults>True</GenerateSmartDefaults>
<DropObjectsNotInSource>True</DropObjectsNotInSource>
<DoNotDropPermissions>True</DoNotDropPermissions>
<DoNotDropRoleMembership>True</DoNotDropRoleMembership>
<DoNotDropUsers>True</DoNotDropUsers>
<IgnoreColumnOrder>True</IgnoreColumnOrder>
<ProfileVersionNumber>1</ProfileVersionNumber>
<ExcludeCredentials>True</ExcludeCredentials>
<ExcludeDatabaseScopedCredentials>True</ExcludeDatabaseScopedCredentials>
<ExcludeExternalTables>True</ExcludeExternalTables>
<ExcludeExternalFileFormats>True</ExcludeExternalFileFormats>
<ExcludeExternalDataSources>True</ExcludeExternalDataSources>
</PropertyGroup>
</Project>