Hi,

I get a SQL Server 2008 database called ‘BLANK’. And it contains several tables, one of them is ‘MyTable’. Its object ID is 480720765.

I find a very strange problem in the table.

When I login as DAC mode and using the following statements:

USE BLANK;

select * from sys.syscolpars where id = 480720765;

I will get all the columns for ‘MyTable’, and their colid is from 1 to 21, as below:

Click image for larger version. 

Name:	syscolpars.jpg 
Views:	2 
Size:	171.1 KB 
ID:	17228

But when I use the following statements to find the partition id for the table:

USE BLANK;

select partition_id from sys.system_internals_partitions where (object_id = '480720765') AND (index_id <= 1);

I will get the partition id as 72057594062897152.

Then if I use the following statements to find the columns of the partition:

USE BLANK;

select * from sys.system_internals_partition_columns where partition_id = '72057594062897152';

I will get all the columns for the partition, but the partition_column_id is from 0 to 20, instead of from 1 to 21.

Below is the result:

Click image for larger version. 

Name:	sys.system_internals_partition_columns.jpg 
Views:	2 
Size:	170.5 KB 
ID:	17229

Originally I think syscolpars.colid should equal to system_internals_partition_columns.partition_colum n_id, since all other tables follow this way. But ‘MyTable’ is not. Why?

Thanks