首页 > 解决方案 > 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 的名字,这是一个关键字,从那里我得到了很多错误。有没有办法解决这个问题?该脚本将用于自动化数据库迁移,因此我需要该工具来生成脚本而不显示语法高亮错误并且在错误日志中没有错误。

我将不胜感激任何帮助!

标签: sqlsql-server-data-tools

解决方案


您收到错误消息,因为 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 作为别名 :)


推荐阅读