使用vsdbcmd部署数据库时:
vsdbcmd.exe /a:Deploy /manifest:MyDatabase.deploymanifest
我:
SQL01268 .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. The schema update is terminating because data loss might occur.
SQL01268 An error occurred while the batch was being executed.
这很好,但它并没有告诉我哪里会发生数据丢失。为了找出我必须使用<DeployToScript>True</DeployToScript>
,然后加载脚本看到:
IF EXISTS (select top 1 1 from [dbo].[MyTable])
RAISERROR ('Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
是否有一种方法可以让vsdbcmd在直接部署到DB时显示此信息,而无需首先生成sql ?
谢谢
没有办法做到这一点,这是一个bug(或缺少功能)。参考Tom对我问题的评论
对于我来说,我需要在部署SQL之前清空我的DB