我生成了一个脚本(使用 SSMS 2012 中的向导)来生成一个 SQL 2008 R2 兼容的数据库脚本。我在 SSMS 2008 R2 实例中运行这个脚本,我得到了一堆(30)这些可能的“警告”错误:
模块“spMoney_Increase”依赖于缺失的对象“dbo.spMoney_Decrease”。该模块仍将被创建;但是,在对象存在之前,它无法成功运行。
我需要关心这些错误吗?请注意,错误并没有破坏整体执行,我知道不建议尝试将 2012 数据库放入 2008 实例,但你知道客户端请求是如何进行的......
-------- 过程说明 --------
在 SSMS 2012 - 服务器 A
- 右键单击 MY_DB > 任务 > 生成脚本
- 在 Set Scripting Options > Advanced > 我选择了以下设置
然后确定 > 下一步 >
在 SSMS 2008 R2 中完成 - 服务器 B我在 C 驱动器上创建了模仿服务器 A 的文件夹位置,因此我不需要更改脚本中的 DIR 路径:
在主数据库上创建数据库 [MY_DB](名称 = N'MY_DB',文件名 = N'C:\DBS\MY_DB.mdf',大小 = 16384KB,最大大小 = 无限,文件增长 = 1024KB)
登录(NAME = N'MY_DB_log',FILENAME = N'C:\DBS\MY_DB_log.ldf',SIZE = 1280KB,MAXSIZE = 2048GB,FILEGROWTH = 10%)GO
- 执行脚本并得到上面的“警告”错误。
这是一条由于缺少依赖项而出现的警告消息(这也意味着 SQL 依赖项树可能未正确设置,因此您将无法在 sys.sql_expression_dependencies 中获得正确的条目,这在以后很有用)。然而,这只是一个警告,只要创建了依赖对象,运行代码就不会出现问题。
您还可以重新推送您收到警告的项目,这将修复依赖项列表,但同样,这并不重要。