有没有其他人遇到过sqlpackage.exe发布/生成脚本生成的sql中的错误?
基本上它会生成很多PRINT语句,就像它正在改变对象一样,但是修改这些对象的sql不在脚本中(尽管还有其他sql用于任何其他预期的更改。)
看起来像这样:
....
USE [$(DatabaseName)];
GO
PRINT N'Altering [dbo].[TableName]...';
GO
ALTER TABLE [dbo].[TableName] DROP COLUMN [ColumnName];
GO
PRINT N'Altering PK_Table1PrimaryKey...';
GO
PRINT N'Altering PK_Table2PrimaryKey...';
GO
PRINT N'Altering UK_Table1UniqueKey...';
GO
PRINT N'Altering [dbo].[TableName].[idx_Index1]...';
GO
PRINT N'Altering [dbo].[stp_1]...';
GO
ALTER PROCEDURE [dbo].[stp_1]
AS
BEGIN
.....
因此主要是约束和索引,其中存在没有匹配的sql语句的PRINT语句。我没有看到存储过程的问题。
我无法在此找到任何连接票,但我已经看到多个SSDT数据库项目(VS2012和2013)的这种行为。
我假设架构中检测到差异,但发布设置会覆盖更改(例如,忽略填充因子或文件组放置设置已启用)。这似乎是一个错误,它会抑制sql而不是输出,当你想要审查(或预览)部署但输出中的更改实际上没有发生时,这是非常误导的。
任何见解都会受到高度赞赏,因为我一直试图谷歌这个问题一段时间没有运气。谢谢!