以下是SQL Server中UPDATE语句的语法。我想在我的过去,我理解语法定义中的一些符号/字符,但从未真正理解所有符号/字符与SQL语法的意思。有人可以帮我理解下面语法定义中的以下含义吗?
[ ]
{ }
[...n]
[,...n]
<some_text>
@token
::=
.
|
.WRITE
https://msdn.microsoft.com/en-us/library/ms177523.aspx
[ WITH <common_table_expression> [...n] ]
UPDATE
[ TOP ( expression ) [ PERCENT ] ]
{ { table_alias | <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
| @table_variable
}
SET
{ column_name = { expression | DEFAULT | NULL }
| { udt_column_name.{ { property_name = expression
| field_name = expression }
| method_name ( argument [ ,...n ] )
}
}
| column_name { .WRITE ( expression , @Offset , @Length ) }
| @variable = expression
| @variable = column = expression
| column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression
} [ ,...n ]
[ <OUTPUT Clause> ]
[ FROM{ <table_source> } [ ,...n ] ]
[ WHERE { <search_condition>
| { [ CURRENT OF
{ { [ GLOBAL ] cursor_name }
| cursor_variable_name
}
]
}
}
]
[ OPTION ( <query_hint> [ ,...n ] ) ]
[ ; ]
<object> ::=
{
[ server_name . database_name . schema_name .
| database_name .[ schema_name ] .
| schema_name .
]
table_or_view_name}
答案 0 :(得分:1)
从联机丛书中的SQL Server Transact-SQL语法约定主题(https://msdn.microsoft.com/en-us/library/ms177563.aspx):
UPPERCASE
Transact-SQL关键字。
italic
用户提供的Transact-SQL语法参数。
bold
数据库名称,表名,列名,索引名,存储过程,实用程序,数据类型名称和必须完全按照所示键入的文本。
underline
表示从语句中省略包含带下划线值的子句时应用的默认值。
| (vertical bar)
分隔括号或大括号中的语法项。您只能使用其中一项。
[ ] (brackets)
可选的语法项。不要键入括号。
{ } (braces)
必需的语法项。不要打字。
[,...n]
表示前面的项目可以重复多次。事件以逗号分隔。
[...n]
表示前面的项目可以重复多次。事件由空白分隔。
;
Transact-SQL语句终止符。虽然此版本的SQL Server中的大多数语句不需要分号,但在将来的版本中将需要使用分号。
<label> ::=
语法块的名称。此约定用于分组和标记冗长语法的部分或可在语句中的多个位置使用的语法单元。可以使用语法块的每个位置用在V形符号中包含的标签表示:。
例如,集合是表达式的集合;例如,列表是集合的集合。