Management Studio 生成的 Sql 脚本在作为查询运行时出现错误
Posted
技术标签:
【中文标题】Management Studio 生成的 Sql 脚本在作为查询运行时出现错误【英文标题】:Sql script generated by management studio gives errors when run as query 【发布时间】:2015-01-22 14:22:57 【问题描述】:我有一个庞大的数据库。我使用 sql server management studio 获得了我的数据库架构的脚本。
脚本包含 176,000 行。当我将脚本复制到新的查询窗口并执行它时。它说
1. Incorrect syntax near 'GO' => This error repeats after 90% of error lines
2. Must declare the scalar variable "@abc"
3. The variable name '@sql' has already been declared. Variable names must
be unique within a query batch or stored procedure
4. Foreign key 'FK_FAVOURITES_DETAIL_FAVOURITES' references invalid table
'dbo.FAVOURITES'
5. Cannot find the object "dbo.LIC_INFO" because it does not exist or you
do not have permissions
根据我的期望,数据库不可能存在无效的对象/关系或定义中有语法错误的过程
管理工作室在正确生成特定长度的脚本或运行特定长度的查询批次的能力方面是否受到限制,或者它可能会因特定脚本(例如过程中的动态 sql 或用户定义的数据类型)而失败
或者我遵循的过程可能有什么问题?
【问题讨论】:
【参考方案1】:SQL Server Management Studio (SSMS) 不擅长生成脚本,特别是它不能很好地确定为满足依赖关系而必须创建对象的顺序。一旦你有一个错误,进一步错误的机会就会急剧增加。
关于您的期望,“数据库不可能存在无效对象/关系或定义中有语法错误的过程” - 这是不正确的。无效对象可以通过多种方式存在于数据库中。
根据您创建脚本的方式,您可能需要查看工具菜单、选项、SQL Server 对象资源管理器、脚本并查看其中的设置。
里斯
【讨论】:
以上是关于Management Studio 生成的 Sql 脚本在作为查询运行时出现错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Microsoft SQL Server Management Studio 生成数据库的实体关系 (ER) 图?
如何从 SQL Server Management Studio 中的表生成 CRUD 存储过程
如何修改 SQL Server Management Studio 中自动生成的脚本文件的默认文件名格式?
使用PD(Power Designer)设计数据库,并且生成可执行的SQL文件创建数据库(本文以SQL Server Management Studio软件执行为例)