2015-08-14 80 views
1

我在理解Create Table語法時遇到問題,如MSDN中所示。創建表語法TSQL

我想這[]指某事可選| - 以不同的方式 - 所以

CREATE TABLE 
    [ database_name . [ schema_name ] . | schema_name . ] table_name 

意味着你可以實際使用:

1.CREATE table table_name 
2.CREATE table database_name.schema_name.table_name 
4.Create table database_name.table_name 
3.Create table schema_name.table_name 

但對於{}或()

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 ]) ] 
[ ; ] 

+4

見https://msdn.microsoft.com/en-us/library/ms177563.aspx – Reeno

+0

^^^^ - 似乎是一個有效的答案我不只是一個評論。雖然回答中的{}的片段會有助於鏈接中斷。 _... {}(大括號) 必需的語法項目。不要輸入大括號.... _ – xQbert

+0

你對這些點感到困惑。它們不像您想象的那樣可選,例如'database_name..table_name'需要兩個點。 – HABO

回答

2

首先,你應該檢查Transact-SQL Syntax Conventions

| (vertical bar) Separates syntax items enclosed in brackets or braces. 
        You can use only one of the items. 
[ ] (brackets) Optional syntax items. Do not type the brackets. 
{ } (braces)  Required syntax items. Do not type the braces. 

現在,作爲創建表,你可以使用:

  1. CREATE TABLE table_name
  2. CREATE TABLE database_name..table_name
  3. CREATE TABLE database_name.schema_name.table_name
  4. CREATE TABLE schema_name.table_name

所以你的Create table database_name.table_name是不正確的。你必須使用第二個例子。當您通過..時,表格將在默認模式內創建(最有可能的是dbo)。


至於第二個問題如何閱讀MSDN文檔。 也許最好的辦法是可視化的方式:

enter image description here