You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需开发应用:如何通过SQL管理器将本地文件导入Azure SQL数据库?

没错,BULK INSERT确实是从SQL服务器本身的文件系统读取数据,所以你本地的路径它肯定找不到——这也是Azure SQL的安全限制导致的,毕竟你没法直接访问云服务器的本地存储。不用开发小应用的话,有几个现成的工具和方法可以搞定这个需求,我给你列几个最实用的:

方法1:用SQL Server Management Studio (SSMS) 导入导出向导

这是最直观的图形化方法,适合新手操作:

  • 打开SSMS,连接到你的Azure SQL数据库
  • 右键点击目标数据库,选择「任务」→「导入数据」,启动导入向导
  • 在「数据源」下拉菜单里选「平面文件源」,点击「浏览」选择你本地的trouwpartij.txt文件
  • 进入「平面文件源」设置页面,配置分隔符:字段分隔符填 |,行分隔符填 |\n,同时可以预览数据确认格式是否匹配
  • 下一步选择目标为「SQL Server Native Client 11.0」(或对应版本),输入Azure SQL的服务器信息、认证方式和目标数据库
  • 后续步骤可选择直接导入到现有表gifts,或者创建新表;最后点击「完成」启动导入即可
方法2:用Azure Data Studio (ADS) 导入数据

ADS是微软的轻量数据库工具,操作简洁:

  • 打开ADS,连接到你的Azure SQL数据库
  • 在左侧「服务器」面板找到目标数据库,右键点击选择「导入数据」
  • 选择「本地文件」作为数据源,找到你的trouwpartij.txt后点击「下一步」
  • 配置文件格式:选择「分隔符」,字段分隔符填 |,行分隔符填 |\n,预览数据无误后继续
  • 选择目标表(可直接选已有的gifts),确认列映射正确,最后点击「导入」完成操作
方法3:用bcp命令行工具

如果习惯用命令行,bcp是官方的批量复制工具,无需编写代码:
打开本地的CMD或者PowerShell,运行类似这样的命令(替换成你的实际信息):

bcp YourDatabaseName.dbo.gifts in "C:\temp\trouwpartij.txt" -S your-azure-sql-server-name.database.windows.net -U your-username -P your-password -c -t " |" -r " |\n"

参数解释:

  • -c:使用字符模式导入,适配文本文件
  • -t:指定字段分隔符,对应你文件里的 |
  • -r:指定行分隔符,对应 |\n
  • -S:Azure SQL服务器的完整名称
  • -U和-P:你的数据库认证用户名和密码
方法4:借助Azure Blob Storage导入(适合大文件/重复导入)

如果文件体积较大,或者需要多次导入,可先把文件传到Blob存储,再从云存储导入:

  1. 用Azure Portal或者Azure Storage Explorer,把本地的trouwpartij.txt上传到一个Azure Blob容器(记得设置容器访问权限为「Blob」或「容器」,方便SQL访问)
  2. 在Azure SQL里执行以下步骤(替换你的Blob信息):
    • 创建数据库主密钥(若未创建):
      CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'YourStrongPassword123';
      
    • 创建数据库范围的凭据,指向你的Blob存储:
      CREATE DATABASE SCOPED CREDENTIAL BlobCredential
      WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
      SECRET = 'YourBlobSASKey';
      
    • 创建外部数据源指向Blob容器:
      CREATE EXTERNAL DATA SOURCE BlobDataSource
      WITH (
          TYPE = BLOB_STORAGE,
          LOCATION = 'https://your-storage-account.blob.core.windows.net/your-container-name',
          CREDENTIAL = BlobCredential
      );
      
    • 用BULK INSERT从Blob读取数据:
      BULK INSERT gifts
      FROM 'trouwpartij.txt'
      WITH (
          DATA_SOURCE = 'BlobDataSource',
          FIELDTERMINATOR = ' |',
          ROWTERMINATOR = ' |\n'
      );
      

内容的提问来源于stack exchange,提问作者BrilBroeder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:12:09