国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL SERVER 重組含有特殊字符的索引時遇到“關鍵字 'with' 附近有語法錯誤.”

2024-08-31 00:54:44
字體:
來源:轉載
供稿:網友
SQL SERVER 重組含有特殊字符的索引時遇到“關鍵字 'with' 附近有語法錯誤.” 2015-03-08 23:54 by 瀟湘隱者, ... 閱讀, ... 評論, 收藏, 編輯

案例描述

這是在索引重組過程中遇到的有意思的錯誤案例,搜索了一下也沒有看到相關資料,估計我第一個碰到這類錯誤的人(It's just a joke)。具體情況是YourSQLDba在做維護數據庫索引時遇到了索引重組錯誤,然后我排查時就發現了這個案例。我下面用一個簡單的測試例子演示一下具體情況。

數據庫版本: SQL SERVER 2005

CREATETABLE TEST
(
 ID INT,
 Name VARCHAR(12)
);
CREATENONCLUSTEREDINDEX "[IDX_NAME]" ON TEST(Name);

因為YourSQLDba生成重組索引語句時,都會在索引名稱上加上[].如果用下面SQL語句進行索引重組,就會遇到這個錯誤

ALTER INDEX [[IDX_NAME]] ON [dbo].[TEST]

Reorganize With (LOB_COMPACTION = On);

消息 102,級別 15,狀態 1,第 1 行

'.' 附近有語法錯誤。

消息 319,級別 15,狀態 1,第 2 行

關鍵字 'with' 附近有語法錯誤。如果此語句是公用表表達式或 xmlnamespaces 子句,那么前一個語句必須以分號結尾。

clipboard

我們嘗試去掉一對[],此時就會報"找不到索引'IDX_NAME'"的錯誤。其實這個好理解,因為雙引號被解釋為字符串的邊界,所以[IDX_NAME]才是真正的索引名稱,但是如果你重建索引時使用[IDX_NAME], 那么[]就變成了解釋字符邊界的字符,索引名就成了IDX_NAME,顯然就會出現找不到該索引的錯誤提示。

ALTERINDEX [IDX_NAME] ON [dbo].[TEST]
Reorganize With (LOB_COMPACTION = On);

clipboard[1]

消息 2727,級別 11,狀態 1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐都县| 红安县| 大田县| 丰原市| 马尔康县| 全南县| 都匀市| 泗阳县| 顺平县| 理塘县| 合肥市| 肥西县| 二手房| 美姑县| 钦州市| 分宜县| 洛扎县| 五华县| 喀喇沁旗| 天水市| 岑溪市| 班玛县| 铁力市| 昭觉县| 竹山县| 宿松县| 沧源| 定襄县| 四平市| 潜山县| 陇南市| 班戈县| 南丹县| 清丰县| 兰西县| 长宁区| 玉田县| 客服| 改则县| 长治市| 张北县|