我想通过SQL查询将所有存储过程从旧数据库移动到新数据库。
我通过Database
&创建了Dynamic stored procedure
它工作得很好。我已经移动了所有tables
,但我无法将stored procedures
移动到新数据库。
我尝试将SQL statements
粘贴到表中,但我不知道要执行它们。
是否有一种简单的方法来迁移我的存储过程?
我通过以下查询获得了在旧数据库中创建的所有存储过程
Select Name from '+@OldDatabse+'.sys.procedures
任何人都可以帮助我吗?
答案 0 :(得分:0)
链接页面中的旧数据库服务器
$old_host= "OLD DB IP";
$old_db = "OLD DB"
$new_host ="localhost";
$new_db= "new_db";
$old_con=mysql_connect($old_host,$old_db);
mysql_select_db($old_db,$old_con);
mysql_select_db($new_db,$new_con);
答案 1 :(得分:0)
你这样做
尝试以下
如果您需要使用查询来移动它,请查看以下链接:
Copy all SP's from one Database to another Database using a script
更新:
...........
这是移动存储过程'
的4选项选项1:使用脚本向导右键单击数据库 - >任务 - >生成脚本 - >通过向导。
选项2:在SSMS中打开存储过程文件夹(在对象资源管理器详细信息窗口中)。 (您也可以按F7执行此操作,有关详细信息,请参阅this blog)。您可以使用shift +单击选择所有存储过程,然后右键单击并将其编写脚本到文件。
选项3 :最简单的。
bcp "SELECT definition + char(13) + 'GO' FROM MyDatabase.sys.sql_modules s INNER JOIN MyDatabase.sys.procedures p ON [s].[object_id] = [p].[object_id] WHERE p.name LIKE 'Something%'" queryout "c:\SP_scripts.sql" -S MyInstance -T -t -w
选项4:编写数据库中的所有存储过程
SELECT O.Name as ProcName
,M.Definition as CreateScript
,O.Create_Date
,O.Modify_Date
FROM sys.sql_modules as M INNER JOIN sys.objects as O
ON M.object_id = O.object_id
WHERE O.type = 'P'
如果使用ENCRYPTION选项创建存储过程,那么您将在定义列中获得NULL。
答案 2 :(得分:0)
以下链接可能重复:
SQL Server - copy stored procedures from one db to another
我希望它会对你有所帮助.. :)