2013-09-27 115 views
1

在MSDN Library或Technet网站上,Microsoft倾向于使用伪语法来解释如何在所有可用选项中使用T-SQL语句。下面是一个示例从TechNet页面的承担UPDATE STATISTICS如何正确读取SQL Server语法?

UPDATE STATISTICS table_or_indexed_view_name 
    [ 
     { 
      { index_or_statistics__name } 
      | ({ index_or_statistics_name } [ ,...n ]) 
       } 
    ] 
    [ WITH 
     [ 
      FULLSCAN 
      | SAMPLE number { PERCENT | ROWS } 
      | RESAMPLE 
      | <update_stats_stream_option> [ ,...n ] 
     ] 
     [ [ , ] [ ALL | COLUMNS | INDEX ] 
     [ [ , ] NORECOMPUTE ] 
    ] ; 

<update_stats_stream_option> ::= 
    [ STATS_STREAM = stats_stream ] 
    [ ROWCOUNT = numeric_constant ] 
    [ PAGECOUNT = numeric_contant ] 

如何正确读取这样的描述,迅速找出需要什么,哪些是可选的,清洁的方式来编写你的查询?

+1

一切[]是可选 –

回答

3

你应该参考这个Transact-SQL Syntax Conventions

该文章中的第一个表解释几乎一切。

在您的例子中,我们可以看到如下:

UPDATE STATISTICS table_or_indexed_view_name 

UPDATE STATISTICS是用于 关键字table_or_indexed_view_name是表的名称或更新

[ 
    { 
     { index_or_statistics__name } 
     | ({ index_or_statistics_name } [ ,...n ]) 
      } 
] 

这是统计视图可选[],但如果提供,则必须输入统计名称{index_or_statistics__name}|统计名称列表,用逗号分隔{ index_or_statistics_name } [ ,...n ]

[ WITH 
    [ 
     FULLSCAN 
     | SAMPLE number { PERCENT | ROWS } 
     | RESAMPLE 
     | <update_stats_stream_option> [ ,...n ] 
    ] 
    [ [ , ] [ ALL | COLUMNS | INDEX ] 
    [ [ , ] NORECOMPUTE ] 
] ; 

这也是可选[]。如果使用,则必须以WITH开头,并且您有4个选项,您必须从中选择。 您的选项是

  1. FULLSCAN
  2. SAMPLE number { PERCENT | ROWS },在那里你必须定义number,你必须选择从PERCENT|ROWS
  3. RESAMPLE
  4. `[,... n]的”,这是以逗号分隔的列表

然后,您必须选择ALL,COLUMNSINDEX并用逗号主持,如果您使用了WITH

最后,如果您之前使用过任何其他选项,则可以使用另一个选项来使用NORECOMPUTE并在其之前放置逗号。

<update_stats_stream_option> ::= 
[ STATS_STREAM = stats_stream ] 
[ ROWCOUNT = numeric_constant ] 
[ PAGECOUNT = numeric_contant ] 

这些预定义的选项列表,你可以使用其中<update_stats_stream_option>之前使用(4)。

3

方括号[...]之间的任何事情都是可选的

由管道分隔的任何事情|符号是一个或另一个选项。

在你上面的例子中,你可以把它读作在方括号

UPDATE STATISTICS table_or_indexed_view_name 
[ optionally specify an index as well] 
[ optionally specify options using **WITH** 

     If you use WITH then you can follow it with one of the following keywords 
     FULLSCAN 
     OR SAMPLE number { PERCENT | ROWS } 
     OR RESAMPLE 
].. and so on