MSSQL如何定义数组变量(mssql 定义数组)
SQL Server 的数组变量声明语法与传统变量声明语法类似,可以使用以下语言声明一个数组变量:
`DECLARE @ARRAYVARIABLE [,]`
SQL Server的数组变量的data_type必须是以下几种:
– int
– bigint
– smallint
– tinyint
– decimal
– float
– date
– char
其中整数类型和decimal类型需要使用VarBinary类型定义,而date,char,varchar类型则需要使用Varchar类型定义。
示例:
定义一个类型为int、存储10个数字的数组变量
“`SQL
DECLARE @ARRAY INT[10]
定义一个类型为date、存储3个日期的数组变量```SQL
DECLARE @ARRAY DATE[3]
定义一个类型为varchar、存储5个字符串的数组变量
“`SQL
DECLARE @ARRAY VARCHAR[5]
定义一个类型为decimal、存储7个数字的数组变量```SQL
DECLARE @ARRAY VARBINARY[7]
在MSSQL中,数组变量的定义必须有元素大小指定,因此每次定义时,必须把它的大小也给出来,而SQL Server 提供的数组要求的数据类型也仅有上述所列。
如果数组的大小没有被指定,有一个简单的语句可以达到类似的效果,例如对于 date 类型:
“`SQL
DECLARE @ARRAY VARCHAR(max)
SET @ARRAY=’2014-08-11, 2014-09-11, 2014-10-11′
可以看出,通过上面的代码,也可以实现类似定义数组变量的效果,但由于MSSQL数组变量无法广播,因此建议在定义数组变量时就把数组大小指定出来,达到更加高效的操作。