管理工作室生成的Sql脚本在作为查询运行时会出错

时间:2015-01-22 14:22:58

标签: sql-server database backup ssms sql-scripts

我有一个庞大的数据库。我使用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

根据我的期望数据库不可能存在无效对象/关系或其定义中有synntax错误的程序

管理工作室是否有能力正确生成特定长度的脚本或运行特定长度的查询批处理,或者它可能会对程序或用户定义的数据类型中的特定脚本(例如)动态sql失败

或者我所遵循的流程可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

SQL Server Management Studio(SSMS)在生成脚本方面并不擅长,特别是它在确定必须创建对象以满足依赖性的顺序方面做得不是很好。一旦出现一个错误,进一步错误的可能性就会大大增加。

关于你期望"数据库不存在无效对象/关系或者其定义中存在语法错误的程序" - 这是不正确的。有许多方法可以在数据库中存在无效对象。

根据您创建脚本的方式,您可能需要查看“工具”菜单,“选项”,“SQL Server对象资源管理器”,“脚本”并查看其中的设置。

里斯