如何在变量中分配同一列的多个值,以便我可以在编程中使用独立值。 SQL服务器中是否有任何数组概念?
SELECT @x= Code FROM Security WHERE Department=@dpt;
当代码具有单个值时,这可以正常工作,但是当代码具有多个值时,它会提供错误。
答案 0 :(得分:0)
SQL Server中没有数组。
虽然有table variables与临时表的用法相似。
如MSDN所述:
table
是一种特殊数据类型,可用于存储结果集以便以后处理。 table主要用于临时存储作为表值函数的结果集返回的一组行。函数和变量可以声明为table类型。表变量可用于函数,存储过程和批处理。
你可以这样使用它:
DECLARE @x TABLE (Code int)
INSERT INTO @x
SELECT Code FROM Security WHERE Department=@dpt
答案 1 :(得分:0)
我可以根据你打算做的两种方式思考...
声明@mytable表(Code Int) 插入@mytable 从安全部门选择代码,其中部门= @ dpt。
声明@x nvarchar(max) 设置@x =“”; 选择@x = cast(代码为Nvarchar(max))+“,”+ @x来自Security WHERE Department = @ dpt;
现在您将数据作为逗号分隔字符串,然后您可以将其进一步拆分为上面的#1表,或者将其作为字符串发送出去,程序可以使用它。