我修改了一個用來包含Lob列(VarBinary(MAX))的表。從表中刪除LOB列。 Lob使用的頁數不等於0
當我運行
select * from sys.dm_db_partition_stats
where [object_id] = object_id('MyTable')
的lob_used_page_count是1014969.我認爲這將是0.我錯了或者是有什麼我需要做什麼?
我修改了一個用來包含Lob列(VarBinary(MAX))的表。從表中刪除LOB列。 Lob使用的頁數不等於0
當我運行
select * from sys.dm_db_partition_stats
where [object_id] = object_id('MyTable')
的lob_used_page_count是1014969.我認爲這將是0.我錯了或者是有什麼我需要做什麼?
嘗試ALTER TABLE MyTable REBUILD
。
似乎要做下面的測試。
CREATE TABLE LobTest
(
PK INT IDENTITY PRIMARY KEY CLUSTERED,
A CHAR(7000),
B VARCHAR(MAX)
)
INSERT INTO LobTest
SELECT 'A', REPLICATE(CAST('A' AS VARCHAR(MAX)), 10000) UNION ALL
SELECT 'A', REPLICATE(CAST('A' AS VARCHAR(MAX)), 10000) UNION ALL
SELECT 'A', REPLICATE(CAST('A' AS VARCHAR(MAX)), 10000)
ALTER TABLE LobTest
DROP COLUMN B
SELECT *
FROM sys.dm_db_partition_stats
WHERE [object_id] = object_id('LobTest')
ALTER TABLE LobTest REBUILD
SELECT *
FROM sys.dm_db_partition_stats
WHERE [object_id] = object_id('LobTest')
DROP TABLE LobTest
不適用於SQL Server 2005 ... –
什麼不行?演示腳本?我將它從使用'VALUES'改爲'UNION ALL',現在它工作嗎? –
@PitMing - 2005我想你需要'ALTER INDEX YourPKName ON MyTable REBUILD' –
重建聚集索引。在SQL Server中刪除列時,在重建聚集索引之前,實際上不會刪除它。
你能解釋一下這個區別嗎?我認爲它有一個聚集索引(因爲PK),但我不確定堆的含義 –
該表只包含幾個int,一個Guid和幾個NVarChar(64) –