为什么 'event' 作为关键字出现在 SQL 中?
Why does 'event' appear as a keyword in SQL?
我正在尝试构建一个小型 T-SQL 数据库。作为一名优秀的程序员,我显然查找了所有保留关键字以避免将它们用作名称 (I found a list from Microsoft)。 "event" 这个词不在列表中,所以我决定使用它(而不是 因为它不在列表中当然)。
但是,当我在 SQL Server Management Studio 中编写时,名称以蓝色突出显示,如下所示。如果不是保留关键字,这是为什么?
这是SQL服务器的特殊关键字。如您所见;
所以,我建议你不要使用这种关键字,以免混淆。
此外,如果您想保留此关键字,您可以提供带有 []
的查询,例如 omr.[event]
使用事件或SQL服务器扩展事件数据,数据库程序员可以借助DDL triggers . For example, you can log when a table is dropped, here is the DDL trigger代码处理事件
CREATE TRIGGER trigger_name
ON { ALL SERVER | DATABASE }
[ WITH <ddl_trigger_option> [ ,...n ] ]
{ FOR | AFTER } {*event_type | event_group } [ ,...n ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME < method specifier > [ ; ] }
我正在尝试构建一个小型 T-SQL 数据库。作为一名优秀的程序员,我显然查找了所有保留关键字以避免将它们用作名称 (I found a list from Microsoft)。 "event" 这个词不在列表中,所以我决定使用它(而不是 因为它不在列表中当然)。
但是,当我在 SQL Server Management Studio 中编写时,名称以蓝色突出显示,如下所示。如果不是保留关键字,这是为什么?
这是SQL服务器的特殊关键字。如您所见;
所以,我建议你不要使用这种关键字,以免混淆。
此外,如果您想保留此关键字,您可以提供带有 []
的查询,例如 omr.[event]
使用事件或SQL服务器扩展事件数据,数据库程序员可以借助DDL triggers . For example, you can log when a table is dropped, here is the DDL trigger代码处理事件
CREATE TRIGGER trigger_name
ON { ALL SERVER | DATABASE }
[ WITH <ddl_trigger_option> [ ,...n ] ]
{ FOR | AFTER } {*event_type | event_group } [ ,...n ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME < method specifier > [ ; ] }