我需要在SQL SERVER 2008中更改数据库名称,并在另一个项目中使用它。但是,它包含数百个存储过程,并且数据库的名称也应在存储过程中进行更改。有没有办法做到这一点?在存储过程中更改数据库名称
回答
如果用鼠标右键单击数据库并选择“任务” - >“生成脚本”。通过向导,它会为你创建一个SQL脚本。确保您选择了所有必要的选项,例如创建数据库,存储过程等等。一旦完成,您将拥有一个大脚本。查找并替换数据库名称。
+1。编辑脚本时,我建议您除去需要的数据库名称。如果某人为了测试目的(另一个测试数据库的SP可能会更新实时数据库)制作了另一个名称的数据库副本,让DB知道数据库名称的SP可能会产生令人讨厌的效果。 – 2010-06-08 07:04:26
谢谢你的快速回答。我会尽快完成。 – 2010-06-08 07:04:52
只是一个澄清,因为我是一个noob,我盯着这个答案好了十分钟,才意识到发生了什么事情。 “生成脚本”的东西在SQL编辑器中创建一个大文本文件。查找/替换该文件中所有条目的数据库名称,然后单击执行。它会失败,因为脚本试图将所有现有的存储过程重新插入到数据库中。您现在必须删除所有正在更新的程序,再次执行,并且它们将被重新插入,并且看起来没有任何事情发生。现在刷新视图,它们将重新出现。 – Frosty840 2010-10-22 11:33:46
没有办法自动做到这一点。您将不得不手动更改每个存储过程。
你真的需要改名吗?
我建议你将所有的存储过程导出为sql文件,然后带上一个漂亮的texteditor(如Notepad ++)并进行文件搜索& replace-action来更改sql文件中引用的所有名称。
周围有一个据我可以说没有其他办法:-(
我会做下一件事情:我会生成由Management Studio中(Right Click on DB -> Tasks -> Generate scripts
)数据库的所有脚本,以后我会替换数据库的名称(Ctrl + H
)
保持一切并使用不同的服务器或服务器实例不是更好吗?您是否必须通过这两个不同名称的数据库来维护数据库更改?
- 1. 在存储过程中更改数据库名称和跨数据库查询
- 2. 更改MySQL存储过程'数据库整理'名称
- 3. 在Alfresco中更改存储库名称
- 4. 从存储过程名称查找数据库名称
- 5. 如何在存储过程中引用数据库名称?
- 6. 在存储过程中动态设置数据库名称
- 7. SQL Server:存储过程中的动态数据库名称
- 8. 确定存储过程中的数据库名称
- 9. 在存储过程中更改数据库
- 10. 更改数据库名称
- 11. 如何更改列名称并通过存储过程更改表中的值?
- 12. 如何获取调用存储过程的数据库名称?
- 13. 动态数据库名称,而不使用存储过程
- 14. 如何将数据库名称传递到存储过程?
- 15. 使用转义数据库名称调用MySQL存储过程
- 16. 数据库表的动态名称 - 存储过程
- 17. 更改ANSI_NULLS在数据库设置为所有存储过程
- 18. 如何更改存储过程中结果集的名称
- 19. 存储过程未更新数据库
- 20. llblgen pro - 在代码中更改存储过程参数名称gen
- 21. 数据库存储过程
- 22. Oracle存储过程名称
- 23. 更改本地目录名称以匹配github存储库名称更改
- 24. 存储数据库服务器名称
- 25. MySQL存储过程动态更改表的名称
- 26. 在数据库中存储图像名称和扩展名?
- 27. 更改图像名称并将其与数据库存储在一起php codeigniter
- 28. 在库中更改了函数名称
- 29. Hibernate数据库名称更改导致MySQLSyntaxErrorException:表不存在
- 30. 更改TFS 2013数据库层名称
最好的解决方案是备份数据库并将其作为新数据库附加。这样SQL Server会自动重命名旧的数据库引用。 – 2010-06-09 08:20:04