我将sqlproj设置为不验证标识符的大小写,但是当我使用msbuild生成sql脚本时,它似乎忽略了它并显示类似warning SQL71558: The object reference [dbo].[table].[deleted] differs only by case from the object definition [dbo].[table].[Deleted].
的警告。
请注意,在Visual Studio中进行构建时,警告未如预期那样显示。
这是我在cmdline上运行的内容:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe" /p:Configuration=Release /p:Platform=AnyCpu /p:TargetDatabaseName=dbName /p:TargetConnectionString="Data Source=.\SQLExpress;Initial Catalog=dbName;Integrated Security=True" /p:DeployScriptFileName=publish.sql /p:UpdateDatabase=False /p:CommentOutSetVarDeclarations=True /t:Rebuild,Deploy "c:\dev\project\Sql.sqlproj"
我还尝试将/p:ValidateCasingOnIdentifiers=False
添加到msbuild命令中,但这也不起作用。
我确认当我在Visual Studio的项目属性GUI中单击项目设置中的复选框时,我的sqlproj已插入行<ValidateCasingOnIdentifiers>False</ValidateCasingOnIdentifiers>
。
答案 0 :(得分:1)
通过在sqlproj文件中的<ValidateCasingOnIdentifiers>False</ValidateCasingOnIdentifiers>
的正下方添加一行来使它起作用:
<SuppressTSqlWarnings>71558</SuppressTSqlWarnings>
本文使我发现:lcov source code