在 SQL Server 線上叢書 》, " FOR 子句 」 主題不包含完整的資訊。 這份文件包含其他資訊將會包含在 「 FOR 子句 」 主題中的引數 " BROWSE 」 一節。 此外, 本文也將告訴您的案例中, 說明其他資訊。
其他相關資訊
引數 " BROWSE 」 一節中的 " " 引數 ] 區段的 SQL Server 線上叢書 》 主題 「 FOR 子句 」 包括下列資訊:
請注意 當唯一索引鍵資料行的資料表可以接受 Null 值, 和資料表是在內部端的外部聯結作業, 瀏覽模式就不支援索引。
瀏覽模式可讓您掃描您的 SQL Server 資料表中資料列並在同一時間更新您的資料表一個資料列中的資料。 若要存取 SQL Server 資料表在您應用程式在瀏覽模式, 您必須使用的下列兩個選項之一:
當您試著存取從 SQL Server 資料表中的資料瀏覽模式藉由使用 SELECT 查詢牽涉到的外部聯結陳述式, 而且唯一索引定義在資料表已存在於內部的外部聯結陳述式, 端時, 瀏覽模式不支援唯一索引。 只有當所有索引鍵資料行唯一索引可接受 Null 值瀏覽模式支援唯一索引。 瀏覽模式不支援唯一索引, 如果下列條件為真:
如果要重現此行為在瀏覽模式, 請依照下列步驟執行:
在您執行 SELECT 查詢, 以存取資料表在瀏覽模式, 的 SELECT 查詢結果集包含兩個 Null 值為 tleft 資料表中資料行 c 1 之定義的右外部聯結陳述式, 因為。 因此, 在結果集中, 您無法區別 Null 值, 來自資料表和 Null 值, 引入右外部聯結陳述式。 如果您必須忽略 Null 值從結果集可能會收到不正確的結果。
注意 如果 that are included in 唯一索引資料行不接受 Null 值, 在結果集中所有的 Null 值已引入由右外部聯結陳述式。
請注意 當唯一索引鍵資料行的資料表可以接受 Null 值, 和資料表是在內部端的外部聯結作業, 瀏覽模式就不支援索引。
瀏覽模式可讓您掃描您的 SQL Server 資料表中資料列並在同一時間更新您的資料表一個資料列中的資料。 若要存取 SQL Server 資料表在您應用程式在瀏覽模式, 您必須使用的下列兩個選項之一:
• | 必須以關鍵字 FOR BROWSE 結尾 SELECT 陳述式, 讓您用來從您的 SQL Server 資料表存取資料。 當您開啟 FOR BROWSE 選項設定為使用瀏覽模式, 會建立暫存資料表。 |
• | 您必須執行下列 Transact - SQL 陳述式以瀏覽模式開啟藉由使用 NO_BROWSETABLE 選項: 當您開啟於 NO_BROWSETABLE 選項, 所有 SELECT 陳述式行為就好像 FOR BROWSE 選項會附加至陳述式。 不過, NO_BROWSETABLE 選項並不會建立暫存表格, FOR BROWSE 選項通常會用來將結果傳送到您的應用程式。 |
• | 您嘗試藉由使用 SELECT 查詢牽涉到外部聯結陳述式從 SQL Server 資料表在瀏覽模式下存取資料。 |
• | 唯一索引定義在資料表已存在於內部端的外部聯結陳述式。 |
1. | 啟動 SQL Server Management Studio, 然後再連接到 SQL Server 2005 的執行個體。 |
2. | 建立資料庫, 並命名 SampleDB 資料庫。 |
3. | 在資料庫, SampleDB 建立 tleft 資料表和兩者都包含單一資料行 c 1, 並命名為 「 tright 資料 」 資料表。 在 tleft 資料表, 中的資料行 c 1 上定義唯一的索引, 將資料行設定為接受 Null 值。 在適當的查詢視窗中如果要執行這項操作, 執行下列 Transact - SQL 陳述式:
|
4. | 在資料 tleft 表與 tright 資料表中插入多個值。 請確定在 tleft 資料表中, 插入 Null 值。 若要執行這項, 在 [ 查詢 ] 視窗執行下列 Transact - SQL 陳述式:
|
5. | 開啟 [ NO_BROWSETABLE 選項。 若要執行這項, 在 [ 查詢 ] 視窗執行下列 Transact - SQL 陳述式:
|
6. | 可以在 SELECT 查詢使用外部聯結陳述式存取資料 tleft 表與 tright 資料表中的資料。 請確定該 tleft 資料表是在內部端的外部聯結陳述式。 若要執行這項, 在 [ 查詢 ] 視窗執行下列 Transact - SQL 陳述式: 請注意結果 ] 窗格中下列輸出: c1 |
注意 如果 that are included in 唯一索引資料行不接受 Null 值, 在結果集中所有的 Null 值已引入由右外部聯結陳述式。