以下是我遇到问题的特定查询。
声明起始日期DATETIME-##日期
如果我在没有--##DATE
的情况下运行它,那么查询不会返回任何结果。我知道--
是一个注释,##
是一个全局临时表。但为什么它不起作用呢?即使去掉--
,查询也不会返回任何结果。
事实上,我已经声明了DATETIME
数据类型就足够了?
我正在通过一个财务应用程序使用T-SQL,您可以在其中创建自己的视图。
这对于注释来说太长了。
在我看来,这段代码显然有效:
DECLARE @StartDate DATETIME
然而,它不做任何明显的,因此它本身很难诊断(如果没有明确的错误(。因此,要知道这样的代码是否有效,您可能会在之后获得代码。
我怀疑是以下代码导致了错误*,因为DECLARE
没有明确的语句分隔符(通常称为分号(。
在这样的场景中,注释为解析器提供了足够的信息来防止错误。然而,最好只写:
DECLARE @StartDate DATETIME;
我想不出办法重现这个问题。但您可以看到语句终止符的重要性,代码如下:
declare @x int;
(select 1)
删除分号,你会得到一个错误