sql server 2005中是没有数组的概念的,不过我们可以用用逗号分隔的字符串来代替
create PROC testArray
@array VARCHAR(max)
AS
BEGIN
IF(RIGHT(@array,1) <> ',') --保证最右边是逗号
SET @array = @array + ','
declare @start INT --每次开始截取的位置
DECLARE @temp INT --每次最终截取的位置
declare @totalLength INT --传入的字符串的总长度
SET @totalLength = len(@array)
SET @start = 0;
SET @temp = 0;
WHILE(@start < @totalLength) --如果没有到最后
BEGIN
IF(substring(@array, @temp, 1) = ',') --探测下一个字符是不是逗号
BEGIN
PRINT substring(@array, @start, @temp-@start) --如果是,就从上一次逗号截取到这一次逗号
SET @start = @temp+1 --更新起始点,跳过逗号
END
SET @temp = @temp + 1 --向前进一位
END
END
参考的文章:
SQL Server 2005 存储过程不支持数组类型参数的变通办法
http://www.cnblogs.com/zys529/archive/2009/02/28/1400258.html
分享到:
相关推荐
在SQL Server中实现数据的数组式读取.pdf
在SQL存储过程中进行参数数组Array Parameter的处理函数。
一个基于SQL server 2005实现的通过一个数组参数进行Procedure的parameter传递例子
分解数组的sqlserver的t-sql语句
利用KEPSERVER6 实现写入SQLSERVER.docx
在SQL Server中模拟数据的数组式存储.pdf
本篇文件将结合MSND简要分析Sqlserver中JSON函数,主要包括ISJSON,JSON_VALUE,JSON_MODIFY,JSON_QUERY,需要的朋友可以参考下
SQLServer中如何将一个字段的多个记录值合在一行显示
sqlserver实现字符拆解成表格的形式
将数组作为参数传递给SQL Server
一个专门实现sql server数据库的增删改查,以及将查询的结果返回成表格等功能,分享代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data....
Java+SQL server 学生宿舍管理系统 数据库课程设计 简单控制台输出功能 增删查改统计
1、按特定的分隔符号,确定数组长度 2、按指定符号分割字符串,返回“分割后指定索引的第几个元素”的值,象数组一样方便 ...4、检查一个元素是否与数组中的相匹配,并返回相匹配的数组的值。参数值为0表示全模糊匹配
Java调用带参数的Oracle 存储过程并返回集合,
Json_Query:Json字符串中提取对象或数组。 Json_Modify:更新Json字符串中的属性值,并返回更新的Json字符串。 开始之前:创建示例数据 declare @json_str varchar(max) set @json_str='[ {"key":3,"value1":10,...
利用OpenXML获取XML文件中的数据 语法 OPENXML(idoc int [in],rowpattern nvarchar[in],[flags byte[in]]) [WITH (SchemaDeclaration | TableName)] 参数。。。。。
在查询表时需要对单个字段分割成多个字段非常有用!
vbs批量分离数据库 SQLServer 2008,数据库名称数组名称、服务器名称需要根据实际情况赋值 VBS文件直接执行
这里罗列了,PB中关于控制数据库写法与SQL不同之处