sqlserver 数据库存储过程,每个过程导出为一个文件

1 如何批量导出?
2 navicat只能导出到一个文件
3 需要每个数据库对象导出为一个文件,比如每个存储过程导出为各自的文件

操作步骤
1、数据库右键-->任务-->生成脚本

img


img

2、选择特定数据库对象

img

3、保存到文件

img

参考下这个,可以通过navicat的数据传输和备份两种方式进行导出
https://www.cnblogs.com/Marydon20170307/p/15867104.html

写一个存储过程,将所有存储过程导入到本地d:\aa文件夹中:如下:

CREATE     PROC usr_sp_out
AS 
BEGIN
    SET NOCOUNt ON 
    
    IF OBJECT_ID('usr_tmp') IS NULL
        CREATE TABLE usr_tmp(a VARCHAR(100),t VARCHAR(8000))

    DECLARE @name VARCHAR(100)
    DECLARE @content VARCHAR(5000) 
    DECLARE @sql VARCHAR(5000)    

    DECLARE cur_name CURSOR LOCAL 
    FOR 
        SELECT name,CONVERT(VARCHAR(5000),TEXT) text FROM sysobjects A INNER JOIN syscomments B ON a.id=b.id 
        WHERE A.xtype='P'
        ORDER BY name 

    OPEN cur_name
    FETCH    NEXT FROM cur_name    INTO @name,@content 
    
    WHILE(@@FETCH_STATUS=0)
    BEGIN            
        INSERT dbo.usr_tmp(a,t)    VALUES(  @name,@content  )
        set @sql = 'osql -Ssql服务名 -Usa -P密码 -q"SELECT t from test.dbo.usr_tmp " -o"d:\aa\'+@name+'.sql" -h-1'
        EXEC master.dbo.xp_cmdshell @sql
        
        DELETE FROM usr_tmp
        FETCH    NEXT FROM cur_name    INTO @name,@content 
        
    END 
    CLOSE cur_name
END 

效果如图

img