新聞中心
詳細(xì)信息
| Attribute | 值 |
|---|---|
| 產(chǎn)品名稱 | SQL Server |
| 事件 ID | 207 |
| 事件源 | MSSQLSERVER |
| 組件 | SQLEngine |
| 符號(hào)名稱 | SQ_BADCOL |
| 消息正文 | 列名“%.*ls”無效。 |
說明
此查詢錯(cuò)誤可能是由以下問題之一導(dǎo)致的:

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了賓川免費(fèi)建站歡迎大家使用!
-
列名稱拼寫錯(cuò)誤,或任一指定的表中不存在該列。
-
數(shù)據(jù)庫的排序規(guī)則區(qū)分大小寫,在查詢中指定的列名與表中所定義的列名的大小寫不同。 例如,如果將某列在表中定義為 LastName 而且數(shù)據(jù)庫使用區(qū)分大小寫的排序規(guī)則,那么,以 Lastname 或 lastname 形式引用該列的查詢將因列名不匹配而導(dǎo)致返回錯(cuò)誤 207。
-
在 SELECT 子句中定義的列別名在另一個(gè)如 WHERE 或 GROUP BY 之類的子句中被引用。 例如,以下查詢?cè)?SELECT 子句中定義列別名
Year,并在 GROUP BY 子句中將其引用。USE AdventureWorks2012; GO SELECT DATEPART(yyyy,OrderDate) AS Year, SUM(TotalDue) AS Total FROM Sales.SalesOrderHeader GROUP BY Year;由于查詢子句邏輯上處理的順序,該示例返回錯(cuò)誤 207。 處理順序如下所示:
-
FROM
-
ON
-
JOIN
-
WHERE
-
GROUP BY
-
WITH CUBE 或 WITH ROLLUP
-
HAVING
-
SELECT
-
DISTINCT
-
ORDER BY
-
TOP
因?yàn)榱袆e名是在處理 SELECT 子句后定義的,所以當(dāng)處理 GROUP BY 子句時(shí)列別名是未知的。
-
-
當(dāng) merge_matched 子句引用源表中的<列,但 WHEN NOT MATCHED BY SOURCE 子句中的源表未返回任何行時(shí),MERGE 語句將引發(fā)此錯(cuò)誤。> 該錯(cuò)誤的發(fā)生是因?yàn)楫?dāng)未返回任何行到查詢中時(shí)源表中的列不能被訪問。 例如,如果無法訪問源表中的
WHEN NOT MATCHED BY SOURCE THEN UPDATE SET TargetTable.Col1 = SourceTable.Col1,Col1子句可能導(dǎo)致該語句失敗。
用戶操作
查看以下信息并根據(jù)需要更正該語句。
-
表中存在此列名且該列名拼寫正確。 下面的示例查詢 sys.columns 目錄視圖以返回給定表的所有列名稱。
SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('schema_name.table_name'); -
數(shù)據(jù)庫排序規(guī)則區(qū)分大小寫。 以下語句返回指定數(shù)據(jù)庫的排序規(guī)則。
SELECT collation_name FROM sys.databases WHERE name = 'database_name';排序規(guī)則名稱中的縮寫 CS 指示排序規(guī)則區(qū)分大小寫。 例如,Latin1_General_CS_AS 是一個(gè)區(qū)分大小寫和重音符號(hào)的排序規(guī)則。 更改列名使之與表中定義的列名的大小寫相同。
-
列別名引用不正確。 通過重復(fù)在相應(yīng)子句中定義別名的表達(dá)式或通過使用派生表,對(duì)語句進(jìn)行更改。 下面的示例重復(fù)在 GROUP BY 子句中定義
Year別名的表達(dá)式。USE AdventureWorks2012; GO SELECT DATEPART(yyyy,OrderDate) AS Year ,SUM(TotalDue) AS Total FROM Sales.SalesOrderHeader GROUP BY DATEPART(yyyy,OrderDate);以下示例使用派生表使得別名可用于查詢中的其他子句。 請(qǐng)注意,
Year別名是在首先處理的 FROM 子句中定義的,所以可以在查詢中的其他子句中使用該別名。USE AdventureWorks2012; GO SELECT d.Year, SUM(TotalDue) AS Total FROM (SELECT DATEPART(yyyy,OrderDate) AS Year, TotalDue FROM Sales.SalesOrderHeader)AS d GROUP BY Year; -
MERGE 語句中的 WHEN NOT MATCHED BY SOURCE 子句引用的是可以訪問的值。 修改 MERGE 語句,使源表至少在 WHEN NOT MATCHED BY SOURCE 子句中返回一行。 例如,您可能需要添加或修訂為子句指定的搜索條件。 或者,也可以更改該子句以指定沒有引用源表的值。 例如,
WHEN NOT MATCHED BY SOURCE THEN UPDATE SET TargetTable.Col1 =。
香港美國云服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:SQLServer錯(cuò)誤207列名“%.*ls”無效。故障處理修復(fù)支持遠(yuǎn)程
當(dāng)前URL:http://www.dlmjj.cn/article/cdggspo.html


咨詢
建站咨詢
