SQL SERVER IN参数化处理
来源:互联网 发布:现在java 哪些开发工具 编辑:程序博客网 时间:2024/06/06 18:22
方法一、
CREATE TABLE [dbo].[Users] ( Id INTEGER IDENTITY(1, 1) PRIMARY KEY , Name NVARCHAR(50) NOT NULL ) ;GO
//循环插值
DECLARE @Counter INTEGERSET @Counter = 1WHILE ( @Counter <= 100 ) BEGIN INSERT Users ( Name ) VALUES ( 'Test Users #' + CAST(@Counter AS VARCHAR(10)) ) SET @Counter = @Counter + 1 END
--拆分函数CREATE FUNCTION dbo.fnSplit ( @List varchar(8000), @Delimiter varchar(5) ) RETURNS @TableOfValues table ( RowID smallint IDENTITY(1,1), [Value] varchar(50) ) AS BEGIN DECLARE @LenString int WHILE len( @List ) > 0 BEGIN SELECT @LenString = (CASE charindex( @Delimiter, @List ) WHEN 0 THEN len( @List ) ELSE ( charindex( @Delimiter, @List ) -1 ) END ) INSERT INTO @TableOfValues SELECT substring( @List, 1, @LenString ) SELECT @List = (CASE ( len( @List ) - @LenString ) WHEN 0 THEN '' ELSE right( @List, len( @List ) - @LenString - 1 ) END ) END RETURN END
//存储过程
CREATE PROCEDURE [dbo].[spUsers] @UsersIDs VARCHAR(8000)AS BEGIN SELECT u.Id , u.Name FROM [dbo].[Users] u JOIN dbo.fnSplit(@UsersIDs, ',') t ON u.Id = t.value ENDGO
//执行
EXECUTE [dbo].[spUsers] '1,2,3,4'
方法二、
CREATE TYPE UsersIDTableType AS TABLE (ID INTEGER PRIMARY KEY);GO
//存储过程
CREATE PROCEDURE [dbo].[spGetUsersTable] @UsersIDs UsersIDTableType READONLYAS BEGIN SELECT c.ID , c.Name FROM [dbo].[Users] c JOIN @UsersIDs t ON c.Id = t.ID ENDGO
//调用
DECLARE @Ids UsersIDTableTypeINSERT @IdsVALUES ( 5 )INSERT @IdsVALUES ( 6 )INSERT @IdsVALUES ( 7 )EXECUTE [dbo].[spGetUsersTable] @Ids
//在.NET下如何调用?
调用也比较简单,将参数类型限制为
SqlDbType.Structured
那么值可是是任意IEnumerable, DataTable, 或者DbDataReader。
- SQL SERVER IN参数化处理
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解(转载综合)
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现之xml和DataTable传参
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现详解
- Sql Server参数化查询之where in和like实现之xml和DataTable传参
- SQL的IN参数化查询(字符列表转换成整型的处理方法)
- SQL的IN参数化查询(字符列表转换成整型的处理方法)
- [C++][Thread] 转:线程池原理及创建(C++实现)
- 一般线性规划问题的2阶段单纯形算法
- LLVM每日谈之十五 LLVM自带的examples
- Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明)
- oracle全库导入
- SQL SERVER IN参数化处理
- 使用Activex实现web固定格式尺寸单据打印、票据打印
- 30岁了 该如何谋划自己的未来
- OpenEIM 敏捷这样的方法论是不完善的
- EMV技术学习和研究(六)处理限制
- windows下如何编译MongoDB c语言drive(客户端)
- c++异常处理,异常声明,捕获异常
- IEEE浮点数表示--规格化/非规格化/无穷大/NaN
- 学习时报刊《胡耀邦关于支持揭露康生的讲话》