我正在使用这种难以理解的语法(对不起,我是Sql server的新手):)
CREATE TABLE
[ database_name . [ schema_name ] . | schema_name . ] table_name
[ AS FileTable ]
( { <column_definition>
| <computed_column_definition>
| <column_set_definition>
| [ <table_constraint> ]
| [ <table_index> ] }
[ ,...n ]
[ PERIOD FOR SYSTEM_TIME ( system_start_time_column_name
, system_end_time_column_name ) ]
)
[ ON { partition_scheme_name ( partition_column_name )
| filegroup
| "default" } ]
[ TEXTIMAGE_ON { filegroup | "default" } ]
[ FILESTREAM_ON { partition_scheme_name
| filegroup
| "default" } ]
[ WITH ( <table_option> [ ,...n ] ) ]
[ ; ]
我要问的表选项是
<table_option> ::=
{
[DATA_COMPRESSION = { NONE | ROW | PAGE }
[ ON PARTITIONS ( { <partition_number_expression> | <range> }
[ , ...n ] ) ]]
.....
这是什么意思我可以格式化我的T-Sql脚本?
例如,
CREATE TABLE Black_Cowgirl_tb
([name] int not null, [location] varchar(50) not null, [SheCanCook] bit not null, [SheCanRideAHorse] bit not null,... ) WITH
(
DATA_COMPRESSION = NONE ON PARTITIONS (1),
DATA_COMPRESSION = ROW ON PARTITIONS (2, 4, 6 TO 8),
DATA_COMPRESSION = PAGE ON PARTITIONS (3, 5)
)
请您使用数据压缩选项获取所有可能的格式化方法吗?我想学到很多但我从来没有机会。谢谢。
答案 0 :(得分:0)
<table_option> ::=
{
[DATA_COMPRESSION = { NONE | ROW | PAGE }
[ ON PARTITIONS ( { <partition_number_expression> | <range> }
[ , ...n ] ) ]]
.....
方括号中的请您使用数据压缩选项获取所有可能的格式化方法吗?
值是强制性的。以下是强制性的
data_Compression,ON PARTITIONS,..n
花括号中的值表示您需要选择其中一个。
在这种情况下
{ NONE | ROW | PAGE }
可以读作None或Row或Page ..
所以最后
data_Compression = 无或行或页面 上 分区(1)或分区(1-2)
答案 1 :(得分:0)
您的示例是错误的,因为您的表未被分区,因此如果您收到任何错误,则不是因为错误使用了compression
选项,而是因为您创建的表根本没有分区。
在这里你可以找到很多例子: Creating Compressed Tables and Indexes
示例C就是您的情况:
CREATE TABLE PartitionTable1
(col1 int, col2 varchar(max))
ON myRangePS1 (col1)
WITH
(
DATA_COMPRESSION = ROW ON PARTITIONS (1),
DATA_COMPRESSION = PAGE ON PARTITIONS (2 TO 4)
);
GO