May*_*you 3 sql sql-server sql-server-2005
我正在尝试使用查询创建以下SQL表:
create table Return_indiv (Date datetime, issueid varchar(255), Return varchar(255))
Run Code Online (Sandbox Code Playgroud)
如您所见,其中一个列名称为"Return".但是,SQL认为它是函数return,并给出以下错误:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'Return'.
Msg 195, Level 15, State 10, Line 1
'varchar' is not a recognized built-in function name.
Run Code Online (Sandbox Code Playgroud)
我能以任何方式克服这个错误吗?谢谢!
您需要在列名称周围添加括号,因为它是关键字:
create table Return_indiv
(
Date datetime,
issueid varchar(255),
[Return] varchar(255)
)
Run Code Online (Sandbox Code Playgroud)
请注意,每次查询表中的列(或更新等)时,您还必须使用括号.考虑到这一点,您需要确定是否有一个与保留字同名的列是否值得.
另请注意,这Date是SQL 2008及更高版本中的关键字 - 因此,如果您计划升级,则还需要转义该列名称.
只是为了澄清一点,Return是数据库中的保留字(可能是函数或其他东西).因此,您不能仅将其用作表名,列名等.您可以通过用[]包围它来解决这个问题.但更好的想法是不要在任何对象名称中使用保留字.我无法确定该列中的内容,但也许您可以将其命名为RETURN_VALUE,RETURN_ITEM,等等.只要避免使用保留字,就可以让每个人的生活更轻松.
| 归档时间: |
|
| 查看次数: |
920 次 |
| 最近记录: |