在数据源/模式之间复制 SQL 存储过程?
我已经在我们的开发模式中创建了 SQL 存储过程,并且它运行良好。 现在我们的任务是将我们的开发代码转移到生产代码中。 如何将这些存储过程从一个架构复制到另一个架构? 我需要在目标模式上重新编译整个过程吗? 或者有什么方法可以在目标模式上注册这些过程吗? 有人可以建议我一种更好的方法来复制存储过程吗?
我已经通过 iSeries Navigator for Windows Version 5 Release 4 创建了过程。
提前致谢, 苏雷什
I've created SQL stored procedures in our development schema and its working fine. Now we are in the task of moving our development codes to production one. How do I copy those stored procedures from one schema to another schema? Do I need to re-compile whole procedures on targeted schema? Or Is there any way register those procedures on targeted schema? Could any one suggest me a better way to copy stored procedures?
I've created procedures through iSeries Navigator for Windows Version 5 Release 4.
Thanks in Advance,
Suresh
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
创建存储过程的 SQL 应该位于源文件中,作为某些源控制系统(CVS、SVN 等)中项目的一部分。
要将项目“部署”到新服务器(开发、QA 或生产),只需在新服务器/数据库上执行这些“源 SQL”文件即可。
事实上,对数据库的任何更改(更改表列、添加新表)都应该位于源代码管理中的 SQL 文件中,并以相同的方式应用。
尽管数据库开发工具并不总是看起来如此 - SQL 也是源代码。 :-)
The SQL to create your stored procedures should be in source files as part of a project in some source control system (CVS, SVN, etc.).
To "deploy" your project to a new server (Dev, QA or Production) should simply require executing those "source SQL" files on the new server / database.
Indeed, any changes to the database (table columns altered, new tables added) should be in SQL files in source control, and applied the same way.
Although the database development tools don't always make it seem like it - SQL is source code too. :-)
一般来说,不需要原始来源。 打开 iSeries Navigator 并深入浏览数据库到保存开发 SP 的模式。 选择所有您想要的,右键单击并选择“生成 SQL”。 选择在“RunSQL Scripts”中打开(并且可以选择包含 DROP 语句)。
这将为您提供一个将所有选定 SP 放在一个位置的脚本。 这可以存储在您选择的任何地方。 另外,您可以使用编辑-> 如果脚本中需要更改任何架构名称,请替换。
然后你可以选择菜单选项Connection-> 使用临时 JDBC 设置...指向新架构。 最后,单击工具栏上的“全部运行”图标,将脚本中的 SP 生成到新架构中。
简而言之,选择您想要的 iNav“运行 SQL 脚本”,指向新架构并在本质上通过单个操作创建它们。
In general, original source isn't needed. Open iSeries Navigator and drill down through Databases to the schema that holds the development SPs. Select all of the ones you want, right-click and select 'Generate SQL'. Choose to open in 'RunSQL Scripts' (and optionally include DROP statements).
That will give you a script of all selected SPs in one place. This can be stored anywhere you choose. Also, you can use Edit-> Replace if any schema names need to be changed in the script.
Then you can take menu option Connection-> Use Temporary JDBC Settings... to point to the new schema. And finally, click the Run All icon on the toolbar to generate the SPs from the script into your new schema.
In short, select the ones you want into iNav 'Run SQL Scripts', point to the new schema and create them in essentially a single operation.
请阅读链接,这可能会有所帮助。
Please read the link ,This might be helpful.
http://weblogs.asp.net/steveschofield/archive/2005/12/31/change-schema-name-on-tables-and-stored-procedures-in-sql-server-2005.aspx
我发现的(到目前为止)最好的方法是使用 SQL Management Studio,并使用“脚本过程为...”菜单选项。 这将为您的存储过程生成 SQL 源(CREATE/ALTER 取决于您使用的菜单选项)。
如果您需要批量复制所有存储过程/用户定义的函数,请使用“任务”->“生成脚本”菜单选项。 在出现的一系列对话框中,您可以选择为其生成脚本的存储过程/函数,然后在新数据库上运行这些脚本。
The best way (so far) that I've found was working with SQL Management Studio, and using the Script Procedure As ... menu options. This will produce the SQL source for your sprocs (CREATE/ALTER depending on which menu option you use)
If you need to bulk-copy all the sprocs/user defined functions, use the Tasks->Generate Scripts menu option. In the resulting series of dialogs, you can choose which sprocs/functions to generate scripts for, then run those scripts on your new db.