存储过程动态SQL的方式
2011-10-24 15:18
134 查看
IF(OBJECT_ID('tempdb..#Books') IS NOT NULL)
BEGIN
DROP TABLE #Books;
END
CREATE TABLE #Books
(
BookName NVARCHAR(20),
BookCode NVARCHAR(20)
)
INSERT INTO #Books( BookName, BookCode ) VALUES(N'C# 本质论','JC556874');
INSERT INTO #Books( BookName, BookCode ) VALUES(N'JS 本质论','JS556874');
第一种方式
DECLARE @paraBookName NVARCHAR(20);
SET @paraBookName='C';
DECLARE @Query NVARCHAR(2000);
SET @Query='';
SET @Query=@Query+'SELECT * FROM #Books WHERE 1=1 ';
IF(@paraBookName IS NOT NULL AND @paraBookName<>'')
BEGIN
SET @Query=@Query+'AND BookName LIKE ''%'+@paraBookName+'%'' ';
END
EXEC(@Query);
第二种方式
DECLARE @paraBookName NVARCHAR(20);
SET @paraBookName='C';
SELECT * FROM #Books WHERE 1=1
AND (@paraBookName IS NULL OR @paraBookName='' OR BookName LIKE '%'+@paraBookName+'%')
BEGIN
DROP TABLE #Books;
END
CREATE TABLE #Books
(
BookName NVARCHAR(20),
BookCode NVARCHAR(20)
)
INSERT INTO #Books( BookName, BookCode ) VALUES(N'C# 本质论','JC556874');
INSERT INTO #Books( BookName, BookCode ) VALUES(N'JS 本质论','JS556874');
第一种方式
DECLARE @paraBookName NVARCHAR(20);
SET @paraBookName='C';
DECLARE @Query NVARCHAR(2000);
SET @Query='';
SET @Query=@Query+'SELECT * FROM #Books WHERE 1=1 ';
IF(@paraBookName IS NOT NULL AND @paraBookName<>'')
BEGIN
SET @Query=@Query+'AND BookName LIKE ''%'+@paraBookName+'%'' ';
END
EXEC(@Query);
第二种方式
DECLARE @paraBookName NVARCHAR(20);
SET @paraBookName='C';
SELECT * FROM #Books WHERE 1=1
AND (@paraBookName IS NULL OR @paraBookName='' OR BookName LIKE '%'+@paraBookName+'%')
相关文章推荐
- 动态生成SQL的存储过程,以及调用方法
- 函数 存储过程动态sql
- 存储过程中执行动态Sql语句
- 存储过程中执行动态Sql语句
- MySql带参数的存储过程编写(动态执行SQL语句)
- 动态sql,单引号连接变量在存储过程内执行.
- MySQL存错过程动态执行sql的方式来返回结果集
- MySql带参数的存储过程编写(动态执行SQL语句)
- mysql 存储过程动态执行sql 例子
- MySQL存储过程中实现执行动态SQL语句的方法
- LINQ TO SQL:动态执行带有有参数的存储过程
- sql server 存储过程中执行带输出参数的动态 sql
- 存储过程中执行动态Sql语句
- SQL存储过程事务处理方式大全
- mysql存储过程动态执行sql
- 存储过程update吧 sql语句拼接(列是动态参数)
- 存储过程中执行带输出参数的动态SQL
- 存储过程执行删除重复数据、动态执行sql、拼接sql
- 存储过程中执行动态Sql语句
- MySql带参数的存储过程编写(动态执行SQL语句)