Sql server SQL';关键字';在最近添加的表列上(编辑:列名为保留字)

Sql server SQL';关键字';在最近添加的表列上(编辑:列名为保留字),sql-server,tsql,Sql Server,Tsql,“我的表”包含以下列: id(int) 错误日期(日期时间) 数据nvarchar(100) 功能(新增列,nvarchar(100)) 文件名(与新添加的函数相同,但此函数没有问题) 我正在使用Microsoft SQL Server 2008 R2(SP1)-10.50.2876.0(X64)2013年5月30日10:18:43版权所有(c)Windows NT 6.1上的Microsoft Corporation Enterprise Edition(64位)(构建7601:Servi

“我的表”包含以下列:

  • id(int)
  • 错误日期(日期时间)
  • 数据nvarchar(100)
  • 功能(新增列,nvarchar(100))
  • 文件名(与新添加的函数相同,但此函数没有问题)
我正在使用Microsoft SQL Server 2008 R2(SP1)-10.50.2876.0(X64)2013年5月30日10:18:43版权所有(c)Windows NT 6.1上的Microsoft Corporation Enterprise Edition(64位)(构建7601:Service Pack 1)(管理程序)

以及Microsoft SQL Server Management Studio 14.0.17277.0

我的问题是这样的:

select * from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' 
   and ErrorDate > GETDATE()-90 
   and Function ='ProcessTblFromCSV'
查询返回错误:

消息156,第15级,状态1,第9行 关键字“Function”附近的语法不正确


函数
列的周围需要方括号
[]

select * 
from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' and 
      ErrorDate > GETDATE()-90  and 
      [Function] ='ProcessTblFromCSV';
但是,不建议使用name
函数
,它是保留关键字。第二件事,我会使用
dateadd()
这里是一个关于这个的例子,而不是减法(
-90
):

因此,您可以改为:

select * 
from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' and 
      ErrorDate > DATEADD(DAY, -90,  GETDATE()) and 
      [Function] ='ProcessTblFromCSV';

函数
列的周围需要方括号
[]

select * 
from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' and 
      ErrorDate > GETDATE()-90  and 
      [Function] ='ProcessTblFromCSV';
但是,不建议使用name
函数
,它是保留关键字。第二件事,我会使用
dateadd()
这里是一个关于这个的例子,而不是减法(
-90
):

因此,您可以改为:

select * 
from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' and 
      ErrorDate > DATEADD(DAY, -90,  GETDATE()) and 
      [Function] ='ProcessTblFromCSV';

function
是T-SQL中的一个关键字

尝试用括号括起来:

select * from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' 
   and ErrorDate > GETDATE()-90 
   and [Function] ='ProcessTblFromCSV'

function
是T-SQL中的一个关键字

尝试用括号括起来:

select * from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' 
   and ErrorDate > GETDATE()-90 
   and [Function] ='ProcessTblFromCSV'

函数
是一个关键字。将其放在方括号中
[Function]
最好避免保留字
Function
是一个关键字。使用方括号
[Function]
最好避免提及第二次推荐的保留字,原因是什么?提及第二次推荐,原因是什么?