当前位置:  开发笔记 > 数据库 > 正文

T-SQL表和一个DECLARE块中的其他变量

如何解决《T-SQL表和一个DECLARE块中的其他变量》经验,为你挑选了1个好方法。

以下无法编译:

  DECLARE
    @DateFrom Date = '20151225',
    @DateTo Date = '20151226',
    @Ids TABLE (Id Int NOT NULL);

有错误:

关键字"TABLE"附近的语法不正确.

但是当我DECLARE为表变量声明添加它自己的时候,它完美地编译:

 DECLARE
    @DateFrom Date = '20151225',
    @DateTo Date = '20151226';

 DECLARE
    @Ids TABLE (Id Int NOT NULL);

这是SQL小提琴.

第一个片段有什么问题?我们不允许声明DECLARE与其他变量声明共享同一块的表变量?



1> Jakub Lortz..:

DECLARE文档:

声明表变量时,表变量必须是DECLARE语句中声明的唯一变量.

您也可以在语法中清楚地看到它:

DECLARE 
{ 
    { @local_variable [AS] data_type  | [ = value ] }
  | { @cursor_variable_name CURSOR }
} [,...n] 
| { @table_variable_name [AS]  } 

@local_variable可以声明一个或多个s([,...n]部分),或仅声明一个@table_variable_name.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有