sql - SSDT SQL 脚本生成错误
问题描述
我在使用带有 SQL Server 数据工具的 Visual Studio 2017 从 MSSQL 数据库生成脚本时遇到问题。问题是我在生成脚本时有很多错误。生成的脚本如下所示:
SELECT
GO.ID_GUID
,GO.NAME
,GO.CODE
,SO.CURRENCY_CODE
FROM
GENERIC_OWNER GO
INNER JOIN
SALES_OWNER SO
ON GO.ID_GUID = SO.GENERIC_OWNER_ID
WHERE
GO.BLOCKED <> 'Y'
所以显然 GENERIC_OWNER 得到了 GO 的名字,这是一个关键字,从那里我得到了很多错误。有没有办法解决这个问题?该脚本将用于自动化数据库迁移,因此我需要该工具来生成脚本而不显示语法高亮错误并且在错误日志中没有错误。
我将不胜感激任何帮助!
解决方案
您收到错误消息,因为 GO 是您的客户端工具的关键字,例如 ssms,可以更改批处理分隔符,但您可以在关键字周围添加方括号,如下所示:
SELECT
[GO].ID_GUID
,[GO].NAME
,[GO].CODE
,SO.CURRENCY_CODE
FROM
GENERIC_OWNER [GO]
INNER JOIN
SALES_OWNER SO
ON [GO].ID_GUID = SO.GENERIC_OWNER_ID
WHERE
[GO].BLOCKED <> 'Y'
最好不要使用 GO 作为别名 :)
推荐阅读
- c# - 从 lambda 返回数组索引但抛出 IndexOutOfRangeException
- c - strcmp() 没有返回它应该返回的内容
- angular - Angular 2 Firebase如何在对象中获取数组
- python - Python错误的结果加入列表
- php - Get term names array from all product for a specific product attribute in Woocommerce
- javascript - 我正在尝试在画布上绘制动画,但出现此错误“画布已被跨域数据污染”。
- javascript - 使用 JS 通过代理打开 URL
- java - IntelliJ:创建工件并将项目导出为 .jar 后,该 jar 什么也不做,即使由 cmd.exe 打开也是如此
- c# - 我如何知道方法不是从基类 C# 派生的
- python - Sublime Text 3 中的 Python 库