服务器是 LInux , 如何批量 导出 SqlServer 数据库中的存储过程
时间: 2024-06-07 08:11:56 浏览: 24
在 Linux 上批量导出 SqlServer 数据库中的存储过程,可以通过以下步骤实现:
1. 安装 mssql-tools,它包含了 sqlcmd 工具,可以用于执行 T-SQL 命令。可以通过以下命令安装 mssql-tools:
```
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/msprod.repo
sudo yum update
sudo yum install mssql-tools unixODBC-devel
```
2. 创建一个包含所有存储过程名称的脚本(例如,sp_list.sql),内容如下:
```
SELECT name
FROM sys.objects
WHERE type = 'P'
ORDER BY name
```
3. 导出存储过程,可以使用以下命令:
```
cat sp_list.sql | sqlcmd -S <server_name> -U <user_name> -P <password> -d <database_name> -h-1 -s"," -W -k1 > procedures.csv
```
其中,<server_name> 是 SqlServer 服务器名称;<user_name> 和 <password> 是连接 SqlServer 的用户名和密码;<database_name> 是要导出存储过程的数据库名称。
该命令将执行 sp_list.sql 脚本,获取存储过程名称列表,并将结果输出到 procedures.csv 文件中,每个存储过程名称占一行。
4. 执行以下命令,批量导出存储过程:
```
while read line; do sqlcmd -S <server_name> -U <user_name> -P <password> -d <database_name> -Q "sp_helptext '$line'" | iconv -t utf-8 | sed "s/^CREATE PROCEDURE/USE <database_name> GO CREATE PROCEDURE/g" >> procedures.sql; done < procedures.csv
```
该命令将逐行读取 procedures.csv 文件中的存储过程名称,并使用 sqlcmd 命令获取每个存储过程的定义。然后,将每个存储过程的定义输出到 procedures.sql 文件中。
注意:该命令假设存储过程名称中不包含特殊字符。如果存储过程名称中包含特殊字符(例如空格、括号等),需要在脚本中进行处理。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)