在 Debian 上把 SQL Server 的数据“导入”进来,常见有几种场景。下面按最常用、最稳妥的方式给你一个完整说明。
.sql-- 在 SSMS 中
右键数据库 → Tasks → Generate Scripts → 选择表/数据
然后把这个 .sql 文件拷贝到 Debian。
MySQL 示例
mysql -u user -p dbname < data.sql
PostgreSQL 示例
psql -U user -d dbname -f data.sql
✅ 优点:
mssql-tools + bcp(微软官方工具)curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/debian/12/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt update
sudo apt install -y msodbcsql18 mssql-tools unixodbc
添加环境变量:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
bcp 导出 SQL Server 数据bcp Database.dbo.TableName out data.csv -S server_ip -U sa -P password -c -t,
参数说明:
-c:字符模式-t,:逗号分隔MySQL 示例
mysql -u user -p dbname -e "LOAD DATA INFILE '/path/data.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ',' ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;"
PostgreSQL 示例
psql -U user -d dbname -c "\COPY table_name FROM '/path/data.csv' CSV HEADER;"
✅ 优点:
pip install pymssql pandas sqlalchemy
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine(
"mssql+pymssql://user:password@sqlserver_ip:1433/dbname"
)
df = pd.read_sql("SELECT * FROM table_name", engine)
# 导入到 MySQL / PostgreSQL
df.to_sql("table_name", target_engine, if_exists="append", index=False)
✅ 适合:
如果你是 Debian → SQL Server:
bcp dbname.dbo.table in data.csv -S sqlserver -U user -P password -c
❌ 不能(SQL Server 官方只支持 Ubuntu / RHEL)
-C UTF-8| 方法 | 适合场景 |
|---|---|
| SSMS 导出 SQL | 小中型数据 |
| bcp + CSV | 大表、批量 |
| Python | 复杂同步 |
| 直连导入 | 不推荐 |
如果你能告诉我:
我可以给你一份 完全定制的导入方案。