sqldw-consumption-cli
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseUpdate Check — ONCE PER SESSION (mandatory) The first time this skill is used in a session, run the check-updates skill before proceeding.
- GitHub Copilot CLI / VS Code: invoke the
skill.check-updates- Claude Code / Cowork / Cursor / Windsurf / Codex: compare local vs remote package.json version.
- Skip if the check was already performed earlier in this session.
CRITICAL NOTES
- To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering
- To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering
会话内仅需检查一次更新(必填) 在会话中首次使用此技能前,请先运行check-updates技能。
- GitHub Copilot CLI / VS Code:调用
技能。check-updates- Claude Code / Cowork / Cursor / Windsurf / Codex:对比本地与远程package.json版本。
- 若本次会话中已执行过检查,可跳过此步骤。
重要说明
- 若要通过工作区名称获取工作区详情(包括ID):列出所有工作区,然后使用JMESPath筛选
- 若要通过工作区ID、项目类型和项目名称获取项目详情(包括ID):列出该工作区内对应类型的所有项目,然后使用JMESPath筛选
SQL Endpoint Consumption — CLI Skill
SQL Endpoint 调用 — CLI技能
Table of Contents
目录
| Task | Reference | Notes |
|---|---|---|
| Finding Workspaces and Items in Fabric | COMMON-CLI.md § Finding Workspaces and Items in Fabric | Mandatory — READ link first [needed for finding workspace id by its name or item id by its name, item type, and workspace id] |
| Fabric Topology & Key Concepts | COMMON-CORE.md § Fabric Topology & Key Concepts | |
| Environment URLs | COMMON-CORE.md § Environment URLs | |
| Authentication & Token Acquisition | COMMON-CORE.md § Authentication & Token Acquisition | Wrong audience = 401; read before any auth issue |
| Core Control-Plane REST APIs | COMMON-CORE.md § Core Control-Plane REST APIs | Includes pagination, LRO polling, and rate-limiting patterns |
| OneLake Data Access | COMMON-CORE.md § OneLake Data Access | Requires |
| Job Execution | COMMON-CORE.md § Job Execution | |
| Capacity Management | COMMON-CORE.md § Capacity Management | |
| Gotchas, Best Practices & Troubleshooting | COMMON-CORE.md § Gotchas, Best Practices & Troubleshooting | |
| Tool Selection Rationale | COMMON-CLI.md § Tool Selection Rationale | |
| Authentication Recipes | COMMON-CLI.md § Authentication Recipes | |
Fabric Control-Plane API via | COMMON-CLI.md § Fabric Control-Plane API via az rest | Always pass |
OneLake Data Access via | COMMON-CLI.md § OneLake Data Access via curl | Use |
| SQL / TDS Data-Plane Access | COMMON-CLI.md § SQL / TDS Data-Plane Access | |
| Job Execution (CLI) | COMMON-CLI.md § Job Execution | |
| OneLake Shortcuts | COMMON-CLI.md § OneLake Shortcuts | |
| Capacity Management (CLI) | COMMON-CLI.md § Capacity Management | |
| Composite Recipes | COMMON-CLI.md § Composite Recipes | |
| Gotchas & Troubleshooting (CLI-Specific) | COMMON-CLI.md § Gotchas & Troubleshooting (CLI-Specific) | |
| Quick Reference | COMMON-CLI.md § Quick Reference | |
| Item-Type Capability Matrix | SQLDW-CONSUMPTION-CORE.md § Item-Type Capability Matrix | Read first — shows what's read-only (SQLEP) vs read-write (DW) |
| Connection Fundamentals | SQLDW-CONSUMPTION-CORE.md § Connection Fundamentals | TDS, port 1433, Entra-only, no MARS |
| Supported T-SQL Surface Area (Consumption Focus) | SQLDW-CONSUMPTION-CORE.md § Supported T-SQL Surface Area | Read before writing T-SQL — includes data types (no |
| Read-Side Objects You Can Create | SQLDW-CONSUMPTION-CORE.md § Read-Side Objects You Can Create | Views, TVFs, scalar UDFs, procedures |
| Temporary Tables | SQLDW-CONSUMPTION-CORE.md § Temporary Tables | Use |
| Cross-Database Queries | SQLDW-CONSUMPTION-CORE.md § Cross-Database Queries | 3-part naming, same workspace |
| Security for Consumption | SQLDW-CONSUMPTION-CORE.md § Security for Consumption | GRANT/DENY, RLS, CLS, DDM |
| Monitoring and Diagnostics | SQLDW-CONSUMPTION-CORE.md § Monitoring and Diagnostics | Includes query labels; DMVs (live) + |
| Performance: Best Practices and Troubleshooting | SQLDW-CONSUMPTION-CORE.md § Performance: Best Practices and Troubleshooting | Statistics, caching, clustering, query tips |
| REST API: Refresh SQL Endpoint Metadata | SQLDW-CONSUMPTION-CORE.md § REST API: Refresh SQL Endpoint Metadata | Force metadata sync when SQLEP data is stale after ETL |
| System Catalog Queries (Metadata Exploration) | SQLDW-CONSUMPTION-CORE.md § System Catalog Queries | |
| Common Consumption Patterns (End-to-End Examples) | SQLDW-CONSUMPTION-CORE.md § Common Consumption Patterns | Reporting views, cross-DB analytics, temp table staging |
| Gotchas and Troubleshooting Reference | SQLDW-CONSUMPTION-CORE.md § Gotchas and Troubleshooting Reference | 18 numbered issues with cause + resolution |
| Quick Reference: Consumption Capabilities by Scenario | SQLDW-CONSUMPTION-CORE.md § Quick Reference: Consumption Capabilities | Scenario → approach lookup |
| Schema and Object Discovery | discovery-queries.md § Schema and Object Discovery | Tables, columns, views, functions, procedures, cross-DB |
| Security Discovery | discovery-queries.md § Security Discovery | |
| Statistics and Performance Metadata | discovery-queries.md § Statistics and Performance Metadata | |
| Bash — Data Export | script-templates.md § Bash — Data Export | Query to CSV + parameterized date range export |
| Bash — Schema Discovery Report | script-templates.md § Bash — Schema Discovery Report | |
| Bash — Performance Investigation | script-templates.md § Bash — Performance Investigation | |
| PowerShell Templates | script-templates.md § PowerShell Templates | Query to CSV + schema discovery |
| Tool Stack | SKILL.md § Tool Stack | |
| Connection | SKILL.md § Connection | |
| Agentic Exploration ("Chat With My Data") | SKILL.md § Agentic Exploration | Start here for data exploration |
| Script Generation | consumption-cli-quickref.md § Script Generation | Formatting flags, piped input, parameterized queries |
| Monitoring and Performance | consumption-cli-quickref.md § Monitoring and Performance | Active queries DMV, KILL syntax |
| Gotchas, Rules, Troubleshooting | SKILL.md § Gotchas, Rules, Troubleshooting | MUST DO / AVOID / PREFER checklists |
| Agent Integration Notes | consumption-cli-quickref.md § Agent Integration Notes | Per-agent CLI tips |
| 任务 | 参考文档 | 说明 |
|---|---|---|
| 在Fabric中查找工作区和项目 | COMMON-CLI.md § 在Fabric中查找工作区和项目 | 必填 — 请先阅读链接内容 [需通过名称获取工作区ID,或通过名称、类型、工作区ID获取项目ID] |
| Fabric拓扑与核心概念 | COMMON-CORE.md § Fabric拓扑与核心概念 | |
| 环境URL | COMMON-CORE.md § 环境URL | |
| 认证与令牌获取 | COMMON-CORE.md § 认证与令牌获取 | 受众错误会导致401;遇到认证问题前请先阅读 |
| 核心控制平面REST API | COMMON-CORE.md § 核心控制平面REST API | 包含分页、LRO轮询和速率限制模式 |
| OneLake数据访问 | COMMON-CORE.md § OneLake数据访问 | 需要 |
| 作业执行 | COMMON-CORE.md § 作业执行 | |
| 容量管理 | COMMON-CORE.md § 容量管理 | |
| 常见问题、最佳实践与故障排查 | COMMON-CORE.md § 常见问题、最佳实践与故障排查 | |
| 工具选择依据 | COMMON-CLI.md § 工具选择依据 | |
| 认证方案 | COMMON-CLI.md § 认证方案 | |
通过 | COMMON-CLI.md § 通过az rest调用Fabric控制平面API | 务必传递 |
通过 | COMMON-CLI.md § 通过curl访问OneLake数据 | 使用 |
| SQL / TDS数据平面访问 | COMMON-CLI.md § SQL / TDS数据平面访问 | |
| 作业执行(CLI) | COMMON-CLI.md § 作业执行 | |
| OneLake快捷方式 | COMMON-CLI.md § OneLake快捷方式 | |
| 容量管理(CLI) | COMMON-CLI.md § 容量管理 | |
| 复合方案 | COMMON-CLI.md § 复合方案 | |
| CLI专属常见问题与故障排查 | COMMON-CLI.md § CLI专属常见问题与故障排查 | |
| 快速参考 | COMMON-CLI.md § 快速参考 | |
| 项目类型能力矩阵 | SQLDW-CONSUMPTION-CORE.md § 项目类型能力矩阵 | 请先阅读 — 展示只读(SQLEP)与读写(DW)的区别 |
| 连接基础 | SQLDW-CONSUMPTION-CORE.md § 连接基础 | TDS、端口1433、仅支持Entra、不支持MARS |
| 支持的T-SQL范围(调用场景) | SQLDW-CONSUMPTION-CORE.md § 支持的T-SQL范围 | 编写T-SQL前请先阅读 — 包含数据类型限制(不支持 |
| 可创建的只读对象 | SQLDW-CONSUMPTION-CORE.md § 可创建的只读对象 | 视图、TVF、标量UDF、存储过程 |
| 临时表 | SQLDW-CONSUMPTION-CORE.md § 临时表 | 插入查询时使用 |
| 跨数据库查询 | SQLDW-CONSUMPTION-CORE.md § 跨数据库查询 | 三段式命名、同一工作区 |
| 调用场景安全设置 | SQLDW-CONSUMPTION-CORE.md § 调用场景安全设置 | GRANT/DENY、RLS、CLS、DDM |
| 监控与诊断 | SQLDW-CONSUMPTION-CORE.md § 监控与诊断 | 包含查询标签;DMV(实时)+ |
| 性能:最佳实践与故障排查 | SQLDW-CONSUMPTION-CORE.md § 性能:最佳实践与故障排查 | 统计信息、缓存、聚类、查询技巧 |
| REST API:刷新SQL Endpoint元数据 | SQLDW-CONSUMPTION-CORE.md § REST API:刷新SQL Endpoint元数据 | ETL后SQLEP数据过时,强制同步元数据 |
| 系统目录查询(元数据探索) | SQLDW-CONSUMPTION-CORE.md § 系统目录查询 | |
| 常见调用模式(端到端示例) | SQLDW-CONSUMPTION-CORE.md § 常见调用模式 | 报表视图、跨库分析、临时表 staging |
| 常见问题与故障排查参考 | SQLDW-CONSUMPTION-CORE.md § 常见问题与故障排查参考 | 18个带原因和解决方案的编号问题 |
| 快速参考:按场景划分的调用能力 | SQLDW-CONSUMPTION-CORE.md § 快速参考:按场景划分的调用能力 | 场景→方法对照表 |
| 架构与对象发现 | discovery-queries.md § 架构与对象发现 | 表、列、视图、函数、存储过程、跨库对象 |
| 安全设置发现 | discovery-queries.md § 安全设置发现 | |
| 统计信息与性能元数据 | discovery-queries.md § 统计信息与性能元数据 | |
| Bash — 数据导出 | script-templates.md § Bash — 数据导出 | 查询结果转CSV + 带参数的日期范围导出 |
| Bash — 架构发现报告 | script-templates.md § Bash — 架构发现报告 | |
| Bash — 性能排查 | script-templates.md § Bash — 性能排查 | |
| PowerShell模板 | script-templates.md § PowerShell模板 | 查询结果转CSV + 架构发现 |
| 工具栈 | SKILL.md § 工具栈 | |
| 连接 | SKILL.md § 连接 | |
| Agent式探索("与我的数据对话") | SKILL.md § Agent式探索 | 数据探索从此处开始 |
| 脚本生成 | consumption-cli-quickref.md § 脚本生成 | 格式化标记、管道输入、参数化查询 |
| 监控与性能 | consumption-cli-quickref.md § 监控与性能 | 活跃查询DMV、KILL语法 |
| 常见问题、规则与故障排查 | SKILL.md § 常见问题、规则与故障排查 | 必须做/避免/推荐检查清单 |
| Agent集成说明 | consumption-cli-quickref.md § Agent集成说明 | 各Agent专属CLI技巧 |
Tool Stack
工具栈
| Tool | Role | Install |
|---|---|---|
| Primary: Execute T-SQL. Standalone binary, no ODBC driver, built-in Entra ID auth via | |
| Auth ( | Pre-installed in most dev environments |
| Parse JSON from | Pre-installed or trivial |
Agent check — verify before first SQL operation:bashsqlcmd --version 2>/dev/null || echo "INSTALL: winget install sqlcmd OR brew install sqlcmd"
| 工具 | 作用 | 安装方式 |
|---|---|---|
| 核心工具:执行T-SQL。独立二进制文件,无需ODBC驱动,通过 | |
| 认证( | 多数开发环境已预装 |
| 解析 | 已预装或易于安装 |
Agent检查 — 首次执行SQL操作前请验证:bashsqlcmd --version 2>/dev/null || echo "INSTALL: winget install sqlcmd OR brew install sqlcmd"
Connection
连接
Discover the SQL Endpoint FQDN
发现SQL Endpoint的FQDN
Per COMMON-CLI.md Discovering Connection Parameters via REST:
bash
WS_ID="<workspaceId>"
ITEM_ID="<warehouseOrLakehouseId>"根据COMMON-CLI.md中“通过REST发现连接参数”的说明:
bash
WS_ID="<workspaceId>"
ITEM_ID="<warehouseOrLakehouseId>"Warehouse
数据仓库
az rest --method get
--resource "https://api.fabric.microsoft.com"
--url "https://api.fabric.microsoft.com/v1/workspaces/$WS_ID/warehouses/$ITEM_ID"
--query "properties.connectionString" --output tsv
--resource "https://api.fabric.microsoft.com"
--url "https://api.fabric.microsoft.com/v1/workspaces/$WS_ID/warehouses/$ITEM_ID"
--query "properties.connectionString" --output tsv
az rest --method get
--resource "https://api.fabric.microsoft.com"
--url "https://api.fabric.microsoft.com/v1/workspaces/$WS_ID/warehouses/$ITEM_ID"
--query "properties.connectionString" --output tsv
--resource "https://api.fabric.microsoft.com"
--url "https://api.fabric.microsoft.com/v1/workspaces/$WS_ID/warehouses/$ITEM_ID"
--query "properties.connectionString" --output tsv
Lakehouse SQL endpoint
湖仓SQL端点
az rest --method get
--resource "https://api.fabric.microsoft.com"
--url "https://api.fabric.microsoft.com/v1/workspaces/$WS_ID/lakehouses/$ITEM_ID"
--query "properties.sqlEndpointProperties.connectionString" --output tsv
--resource "https://api.fabric.microsoft.com"
--url "https://api.fabric.microsoft.com/v1/workspaces/$WS_ID/lakehouses/$ITEM_ID"
--query "properties.sqlEndpointProperties.connectionString" --output tsv
Result: `<uniqueId>.datawarehouse.fabric.microsoft.com`az rest --method get
--resource "https://api.fabric.microsoft.com"
--url "https://api.fabric.microsoft.com/v1/workspaces/$WS_ID/lakehouses/$ITEM_ID"
--query "properties.sqlEndpointProperties.connectionString" --output tsv
--resource "https://api.fabric.microsoft.com"
--url "https://api.fabric.microsoft.com/v1/workspaces/$WS_ID/lakehouses/$ITEM_ID"
--query "properties.sqlEndpointProperties.connectionString" --output tsv
结果:`<uniqueId>.datawarehouse.fabric.microsoft.com`Connect with sqlcmd (Go)
使用sqlcmd(Go版本)连接
bash
undefinedbash
undefinedInteractive session (Entra login via browser if needed)
交互式会话(如需Entra登录,会自动打开浏览器)
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>" -G
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>" -G
Non-interactive one-shot query
非交互式单次查询
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>" -G
-Q "SELECT TOP 10 * FROM dbo.FactSales"
-Q "SELECT TOP 10 * FROM dbo.FactSales"
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>" -G
-Q "SELECT TOP 10 * FROM dbo.FactSales"
-Q "SELECT TOP 10 * FROM dbo.FactSales"
Explicit ActiveDirectoryDefault (uses az login session)
显式使用ActiveDirectoryDefault(依赖az login会话)
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>"
--authentication-method ActiveDirectoryDefault
-Q "SELECT TOP 10 * FROM dbo.FactSales"
--authentication-method ActiveDirectoryDefault
-Q "SELECT TOP 10 * FROM dbo.FactSales"
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>"
--authentication-method ActiveDirectoryDefault
-Q "SELECT TOP 10 * FROM dbo.FactSales"
--authentication-method ActiveDirectoryDefault
-Q "SELECT TOP 10 * FROM dbo.FactSales"
Service principal (CI/CD)
服务主体(CI/CD场景)
SQLCMDPASSWORD="<clientSecret>"
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>"
--authentication-method ActiveDirectoryServicePrincipal
-U "<appId>"
-Q "SELECT COUNT(*) FROM dbo.FactSales"
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>"
--authentication-method ActiveDirectoryServicePrincipal
-U "<appId>"
-Q "SELECT COUNT(*) FROM dbo.FactSales"
undefinedSQLCMDPASSWORD="<clientSecret>"
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>"
--authentication-method ActiveDirectoryServicePrincipal
-U "<appId>"
-Q "SELECT COUNT(*) FROM dbo.FactSales"
sqlcmd -S "<endpoint>.datawarehouse.fabric.microsoft.com" -d "<DatabaseName>"
--authentication-method ActiveDirectoryServicePrincipal
-U "<appId>"
-Q "SELECT COUNT(*) FROM dbo.FactSales"
undefinedReusable Connection Variables
可复用的连接变量
bash
undefinedbash
undefinedSet once at script top
在脚本顶部设置一次
FABRIC_SERVER="<endpoint>.datawarehouse.fabric.microsoft.com"
FABRIC_DB="<DatabaseName>"
SQLCMD="sqlcmd -S $FABRIC_SERVER -d $FABRIC_DB -G"
FABRIC_SERVER="<endpoint>.datawarehouse.fabric.microsoft.com"
FABRIC_DB="<DatabaseName>"
SQLCMD="sqlcmd -S $FABRIC_SERVER -d $FABRIC_DB -G"
Use throughout
在脚本中复用
$SQLCMD -Q "SELECT TOP 5 * FROM dbo.DimProduct"
$SQLCMD -i myscript.sql
undefined$SQLCMD -Q "SELECT TOP 5 * FROM dbo.DimProduct"
$SQLCMD -i myscript.sql
undefinedPowerShell / Windows CMD
PowerShell / Windows CMD
powershell
undefinedpowershell
undefinedPowerShell
PowerShell
$s = "<endpoint>.datawarehouse.fabric.microsoft.com"; $db = "<DatabaseName>"
sqlcmd -S $s -d $db -G -Q "SELECT TOP 10 * FROM dbo.FactSales"
$s = "<endpoint>.datawarehouse.fabric.microsoft.com"; $db = "<DatabaseName>"
sqlcmd -S $s -d $db -G -Q "SELECT TOP 10 * FROM dbo.FactSales"
CMD: use set S=... and %S% / %DB% instead of $variables
CMD:使用set S=...,并以%S% / %DB%替代$变量
---
---Agentic Exploration ("Chat With My Data")
Agent式探索("与我的数据对话")
Schema Discovery Sequence
架构发现流程
Run these in order to understand what's in the endpoint. See references/discovery-queries.md for extended discovery queries.
bash
undefined按顺序运行以下命令,了解端点中的内容。扩展发现查询请参考references/discovery-queries.md。
bash
undefined1. List schemas
1. 列出架构
$SQLCMD -Q "SELECT schema_name FROM information_schema.schemata ORDER BY schema_name" -W
$SQLCMD -Q "SELECT schema_name FROM information_schema.schemata ORDER BY schema_name" -W
2. List tables and views
2. 列出表和视图
$SQLCMD -Q "SELECT table_schema, table_name, table_type FROM information_schema.tables ORDER BY table_schema, table_name" -W
$SQLCMD -Q "SELECT table_schema, table_name, table_type FROM information_schema.tables ORDER BY table_schema, table_name" -W
3. Columns for a table
3. 查询表的列信息
$SQLCMD -Q "SELECT column_name, data_type, character_maximum_length, is_nullable FROM information_schema.columns WHERE table_schema='dbo' AND table_name='FactSales' ORDER BY ordinal_position" -W
$SQLCMD -Q "SELECT column_name, data_type, character_maximum_length, is_nullable FROM information_schema.columns WHERE table_schema='dbo' AND table_name='FactSales' ORDER BY ordinal_position" -W
4. Preview rows
4. 预览数据行
$SQLCMD -Q "SELECT TOP 5 * FROM dbo.FactSales" -W
$SQLCMD -Q "SELECT TOP 5 * FROM dbo.FactSales" -W
5. Row counts
5. 统计行数
$SQLCMD -Q "SELECT s.name AS [schema], t.name AS [table], SUM(p.rows) AS row_count FROM sys.tables t JOIN sys.schemas s ON t.schema_id=s.schema_id JOIN sys.partitions p ON t.object_id=p.object_id AND p.index_id IN (0,1) GROUP BY s.name, t.name ORDER BY row_count DESC" -W
$SQLCMD -Q "SELECT s.name AS [schema], t.name AS [table], SUM(p.rows) AS row_count FROM sys.tables t JOIN sys.schemas s ON t.schema_id=s.schema_id JOIN sys.partitions p ON t.object_id=p.object_id AND p.index_id IN (0,1) GROUP BY s.name, t.name ORDER BY row_count DESC" -W
6. Programmability objects (views, functions, procedures)
6. 可编程对象(视图、函数、存储过程)
$SQLCMD -Q "SELECT name, type_desc FROM sys.objects WHERE type IN ('V','FN','IF','P','TF') ORDER BY type_desc, name" -W
undefined$SQLCMD -Q "SELECT name, type_desc FROM sys.objects WHERE type IN ('V','FN','IF','P','TF') ORDER BY type_desc, name" -W
undefinedAgentic Workflow
Agent式工作流
- Discover → Run Steps 1–3 to understand available tables/columns.
- Sample → on relevant tables.
SELECT TOP 5 - Formulate → Write T-SQL using SQLDW-CONSUMPTION-CORE.md Supported T-SQL Surface Area.
- Execute → .
$SQLCMD -Q "..." - Iterate → Refine based on results.
- Present → Show results or generate a reusable script (Script Generation section).
- 发现 → 运行步骤1-3,了解可用的表/列。
- 采样 → 对相关表执行。
SELECT TOP 5 - 编写 → 参考SQLDW-CONSUMPTION-CORE.md的“支持的T-SQL范围”编写T-SQL。
- 执行 → 运行。
$SQLCMD -Q "..." - 迭代 → 根据结果优化查询。
- 呈现 → 展示结果或生成可复用脚本(参考脚本生成章节)。
Gotchas, Rules, Troubleshooting
常见问题、规则与故障排查
For full T-SQL/platform gotchas: SQLDW-CONSUMPTION-CORE.md Gotchas and Troubleshooting Reference and COMMON-CLI.md Gotchas & Troubleshooting (CLI-Specific).
完整的T-SQL/平台常见问题请参考:SQLDW-CONSUMPTION-CORE.md的“常见问题与故障排查参考”,以及COMMON-CLI.md的“CLI专属常见问题与故障排查”。
MUST DO
必须做
- Always — FQDN alone is insufficient.
-d <DatabaseName> - Always or
-G— SQL auth not supported on Fabric.--authentication-method - first —
az loginuses az session. No session → cryptic failure.ActiveDirectoryDefault - in scripts — suppresses row-count messages that corrupt output.
SET NOCOUNT ON; - Label queries with for Query Insights tracing.
OPTION (LABEL = 'AGENTCLI_...')
- 始终指定— 仅使用FQDN是不够的。
-d <DatabaseName> - 始终使用或
-G— Fabric不支持SQL认证。--authentication-method - 先执行—
az login依赖az会话。无会话会导致模糊的错误。ActiveDirectoryDefault - 脚本中添加— 抑制会破坏输出的行数统计信息。
SET NOCOUNT ON; - 为查询添加标签:使用,便于Query Insights追踪。
OPTION (LABEL = 'AGENTCLI_...')
AVOID
避免
- ODBC sqlcmd () — requires ODBC driver. Use Go version.
/opt/mssql-tools/bin/sqlcmd - Omitting in scripts — trailing spaces corrupt CSV.
-W - DML on SQLEP — Lakehouse/Mirrored DB endpoints are read-only. DML only on Warehouse.
- MARS — not supported. Remove from connection strings.
MultipleActiveResultSets - Hardcoded FQDNs — discover via REST API (Discover the SQL Endpoint FQDN).
- ODBC版sqlcmd() — 需要ODBC驱动,请使用Go版本。
/opt/mssql-tools/bin/sqlcmd - 脚本中省略— 尾随空格会破坏CSV。
-W - 在SQLEP上执行DML — 湖仓/镜像数据库端点是只读的。仅可在数据仓库上执行DML。
- 使用MARS — 不支持此功能。从连接字符串中移除。
MultipleActiveResultSets - 硬编码FQDN — 通过REST API发现(参考“发现SQL Endpoint的FQDN”章节)。
PREFER
推荐
- over curl+token for SQL queries.
sqlcmd (Go) -G - (non-interactive exit) for agentic use.
-Q - Piped input for multi-statement batches or queries with quotes.
- for complex queries — avoids shell escaping.
-i file.sql - for exploration of wide tables.
-F vertical - Env vars (,
FABRIC_SERVER) for script reuse.FABRIC_DB - for Fabric REST API — use sqlcmd only for T-SQL.
az rest
- 使用而非curl+令牌执行SQL查询。
sqlcmd (Go) -G - Agent场景使用(非交互式执行后退出)。
-Q - 多语句批处理或含引号的查询使用管道输入。
- 复杂查询使用— 避免shell转义问题。
-i file.sql - 宽表探索使用。
-F vertical - 使用环境变量(,
FABRIC_SERVER)实现脚本复用。FABRIC_DB - Fabric REST API使用— 仅在执行T-SQL时使用sqlcmd。
az rest
TROUBLESHOOTING
故障排查
| Symptom | Cause | Fix |
|---|---|---|
| Wrong DB name or no access | Verify |
| Wrong FQDN or network | Re-discover via REST API; check port 1433 |
| Port 1433 blocked | |
| | |
| Garbled CSV output | Missing | Add |
| No | Prepend |
| New warehouse < 2 min old | Wait ~2 minutes |
| No rows but data exists | RLS filtering | Check |
| Go version not installed | |
| 症状 | 原因 | 修复方案 |
|---|---|---|
| 数据库名称错误或无访问权限 | 验证 |
| FQDN错误或网络问题 | 通过REST API重新发现;检查端口1433 |
| 端口1433被阻塞 | 执行 |
| | 执行 |
| CSV输出乱码 | 缺少 | 添加 |
文件中出现 | 未添加 | 在脚本开头添加 |
| 新建数据仓库不足2分钟 | 等待约2分钟 |
| 数据存在但查询无结果 | RLS过滤 | 检查 |
| 未安装Go版本 | 执行 |