当前位置: 首页 > 面试题库 >

在CTE中设置变量

祝嘉懿
2023-03-14
问题内容

这是我第一次使用SQLServer 2012,并且我收到的这段代码不起作用:

CREATE PROCEDURE ReadCodeBuffer
    @gint bigint,   
    @pres tinyint,
    @level bigint,
    @quantity smallint,
    @xmlGenerated xml OUTPUT
AS

    DECLARE @current_incremental bigint
    DECLARE @counter bigint
    DECLARE @xml XML

    -- Get current incremental.
    set @current_incremental = 
        (SELECT INCREMENTAL
            FROM INCREMENTAL_TABLE
            WHERE GTIN = @gint AND
              PRESENTATION = @pres AND
              LEVEL = @level)

    -- 
    with Numbers as
    (
      select row_number() over(order by 1/0) as N
      from sys.all_objects as o1 cross join
           sys.all_objects as o2
    )
    SET @xml = (
    select @gint as GINT,
           @pres as PRESENTATION,
           @level as LEVEL,
           N + @current_incremental as INCREMENTAL
    from Numbers
    where N < @quantity
    for xml path('row'), root('root'), type)

    SET @xmlGenerated = @xml
GO

这段代码有问题:

SET @xml = (
    select @gint as GINT,
           @pres as PRESENTATION,
           @level as LEVEL,
           N + @current_incremental as INCREMENTAL
    from Numbers
    where N < @quantity
    for xml path('row'), root('root'), type)

我有以下三个错误:

Incorrect syntax near SET.
Column name N not valid.
Object name 'Numbers' not valid.

问题答案:

您需要替换SETSELECT,它将起作用

所以这

SET @xml = (

需要替换为

SELECT @xml = (


 类似资料:
  • 我试图在Windows8中使用Spark和Hadoop。然而,无论我的代码是什么,我都会收到以下错误: hadoop主路径为空。我试图将设置为环境变量,但没有解决这个问题。

  • 问题内容: 有没有一种方法可以在Linux中使用C设置环境变量? 我尝试了和,但是它们似乎并没有为我工作。 问题答案: 我将在这里做出一个疯狂的猜测,但是这些功能似乎不起作用的正常原因不是因为它们不起作用,而是因为用户并不真正了解环境变量的工作原理。例如,如果我有此程序: 然后我从外壳程序运行它,它不会修改外壳程序的环境- 子进程无法做到这一点。这就是为什么内置可修改环境的shell命令的原因,以

  • 我尝试为将在Windows子系统Linux中运行的Visual Studio Code任务设置环境变量。然而,它似乎不起作用。这是我的tasks.json: 输出为: 请注意,默认情况下,shell已被手动修改为WSL的,正如这里和这里推荐的那样。

  • 问题内容: 我尝试使用下面的代码将命令输出存储在数组中,但是在“ while循环”之后无法打印数组元素,这意味着在代码的最后一行中,我的代码是否存在任何问题? 问题答案: 问题是您在 子 外壳中添加了元素。详细说明: 导致在子shell中执行,这是一个单独的执行环境。这意味着设置的变量不适用于 当前 外壳,其执行环境不会受到影响。您可以改为使用流程替代来实现相同目的: 请注意,不建议解析。尝试使用

  • 问题内容: 我希望通过以下方式在Java中实现某些功能: …根据变量名设置变量,而无需硬编码变量名并且不使用任何其他数据结构。这可能吗? 问题答案: 这是使用反射实现的方式(我已将函数重命名;针对不同的字段类型有不同的反射函数):

  • 问题内容: 我不熟悉Thymeleaf,并将Web页面从JSP转换为Thymeleaf。我有一个像这样的strut标签: 该变量可以在JSP中的任何地方使用。Thymeleaf中是否有其他替代方法? 问题答案: 你可以使用局部变量。 声明带有属性的HTML元素。例如 文档说明 当被处理时,该变量被创建为一个局部变量,并添加到变量地图从上下文来,所以它是可用于评估任何其他变量从一开始就在上下文中声明