如何在SQL中为一个声明的参数设置多个值?

时间:2015-08-11 02:47:48

标签: sql sql-server

在SQL Server Management Studio中,我想为一个声明的参数设置多个值。我想知道下面的脚本是否有效:

declare @Parameter_A     NVARCHAR(MAX)
set @Parameter_A = 'ABC, DEF, GHI, JKL'

如果上述脚本不是实现我想要的正确方法,有人可以帮助我吗?谢谢。

2 个答案:

答案 0 :(得分:1)

正如评论中所提到的,它完全取决于你打算用参数做什么来实现这个目标的最佳方法(也许甚至可以添加你如何获得所选择的值来存储)。如果你能详细说明这两件事,我们可能会给你更好的建议。

您可以轻松地使用一件事来存储多个值,而无需将这些值解析回来是使用表变量:

DECLARE @Params TABLE (A NVARCHAR(MAX))
INSERT @Params VALUES
    ('ABC'), ('DEF'), ('GHI'), ('JKL')
SELECT * FROM @Params

答案 1 :(得分:-1)

我不知道这是否会有所帮助,但是...有一种称为光标的类型,它就像一个矢量或一个数组。它是这样用的:

CURSOR name IS SELECT something
FROM some_table;

这样你就可以在名为" name"的游标中存储大量信息。 要遍历其值,您可以使用如下循环:

OPEN name;

LOOP

    FETCH nome INTO x;
    EXIT WHEN nome%NOTFOUND;

    dbms_output.put_line(x);

END LOOP;

CLOSE nome;

这样就可以打印存储的所有值。希望有所帮助!