示例1:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author : AnDequan
-- Create date : 2013年3月15日
-- Description : 根据查询条件查询
-- =============================================
ALTER PROCEDURE [dbo].[ProcIEBillHeadRelationQuery]
@Business_NO VARCHAR(25),
@agen_code varchar(10),
@Search_All varchar(1),
@status varchar(2)
AS
BEGIN
DECLARE @SQL NVARCHAR(2000),@StrWhere nvarchar(1000)
if (@Search_All='0')
SET @StrWhere = ' 1=1 '
if (@Search_All='1')
SET @StrWhere = ' DOWNLOAD_FLAG=0 '
IF @Business_NO !='' --业务单编号
SET @StrWhere = @StrWhere+ ' AND [Business_NO] = '''+@Business_NO+''''
IF @agen_code !='' --导入结束时间
SET @StrWhere =@StrWhere+ ' AND [agent_code] = '''+@agen_code+''''
IF @status !='-1' --状态
SET @StrWhere =@StrWhere+ ' AND [Status] = '''+@status+''''
SET @SQL = 'SELECT
top 30 *
FROM IEBillHeadRelation
WHERE '+@StrWhere+'
ORDER BY Import_Time DESC'
EXEC sp_executesql @SQL,
N'@Business_NO VARCHAR(25), @agen_code varchar(10)',
@Business_NO, @agen_code
PRINT @SQL
--EXEC ProcIEBillHeadRelationQuery '','','1','3'
End
示例2
/****** Object: StoredProcedure [dbo].[ProcQueryTieZiAll] Script Date: 05/08/2013 10:26:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[ProcQueryTieZiAll]
@StartNo INT,@EndNo INT,@StrWhere nvarchar(2000),@OrderBy nvarchar(400), @Title nvarchar(200),@Code nvarchar(20)
AS BEGIN
DECLARE @SQL NVARCHAR(MAX), @SQLRowCount NVARCHAR(MAX)
IF @Title != ''
SET @StrWhere = @StrWhere + ' AND ps.Title LIKE ''%'+@Title+'%'' '
SET @SQL = 'SELECT * FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY '+@OrderBy+') rowNumber, t1.* ,t2.Username,s.ReTime,t3.Username as ReName
FROM (
SELECT ps.* FROM dbo.forums_Posts ps
INNER JOIN
(
SELECT HierarchyDataId FROM dbo.common_HierarchyData WHERE ParentHierarchyDataId=
(SELECT HierarchyDataId FROM dbo.common_HierarchyData where code='''+@Code+''')
) AS temp
ON ps.CategoryId=temp.HierarchyDataId
WHERE '+@StrWhere+'
) AS t1
left JOIN dbo.aspnet_Users AS t2 ON t1.CreatedBy=t2.UserId
left join (
select PostId,max(CreatedOn) as ReTime from dbo.forums_PostReplies group by postid
) s on t1.Id=s.PostId
left join dbo.aspnet_Users as t3 on t1.repliedby=t3.userid
) N
WHERE N.rowNumber between '+Convert(nvarchar(10), @StartNo)+' and '+Convert(nvarchar(10),@EndNo)+''
SET @SQLRowCount ='SELECT COUNT(*) FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY '+@OrderBy+') rowNumber, t1.* ,t2.Username,s.ReTime,t3.Username as ReName
FROM (
SELECT ps.* FROM dbo.forums_Posts ps
INNER JOIN
(
SELECT HierarchyDataId FROM dbo.common_HierarchyData WHERE ParentHierarchyDataId=
(SELECT HierarchyDataId FROM dbo.common_HierarchyData where code='''+@Code+''')
) AS temp
ON ps.CategoryId=temp.HierarchyDataId
WHERE '+@StrWhere+'
) AS t1
left JOIN dbo.aspnet_Users AS t2 ON t1.CreatedBy=t2.UserId
left join (
select PostId,max(CreatedOn) as ReTime from dbo.forums_PostReplies group by postid
) s on t1.Id=s.PostId
left join dbo.aspnet_Users as t3 on t1.repliedby=t3.userid
) N'
EXEC sp_executesql @SQLRowCount,
N' @StrWhere nvarchar(2000), @OrderBy nvarchar(400), @Title nvarchar(200), @Code nvarchar(20)',
@StrWhere, @OrderBy, @Title, @Code
EXEC sp_executesql @SQL,
N' @StartNo INT, @EndNo INT, @StrWhere nvarchar(2000), @OrderBy nvarchar(400), @Title nvarchar(200), @Code nvarchar(20)',
@StartNo, @EndNo, @StrWhere, @OrderBy, @Title, @Code
PRINT 'TotalCount:'+@SQLRowCount
PRINT '@SQL:'+@SQL
--EXEC ProcQueryTieZiAll 1,20,' 0=0 ' ,'','Hscode'
/*----------------------------------------------------------原始SQL----------------------------------------------------------*/
/*---------------------------------------------------------------------------------------------------------------------------*/
-- SELECT * FROM
--(
-- SELECT ROW_NUMBER() OVER(ORDER BY t1.CreatedOn DESC) rowNumber, t1.* ,t2.Username,s.ReTime,t3.Username as ReName
-- FROM (
-- SELECT ps.* FROM dbo.forums_Posts ps
-- INNER JOIN
-- (
-- SELECT HierarchyDataId FROM dbo.common_HierarchyData WHERE ParentHierarchyDataId=
-- (SELECT HierarchyDataId FROM dbo.common_HierarchyData where code='Hscode')
-- ) AS temp
-- ON ps.CategoryId=temp.HierarchyDataId
-- --WHERE ps.Title like '%2012%'
-- ) AS t1
-- left JOIN dbo.aspnet_Users AS t2 ON t1.CreatedBy=t2.UserId
-- left join (
-- select PostId,max(CreatedOn) as ReTime from dbo.forums_PostReplies group by postid
-- ) s on t1.Id=s.PostId
-- left join dbo.aspnet_Users as t3 on t1.repliedby=t3.userid
--) N
/*----------------------------------------------------------原始SQL----------------------------------------------------------*/
/*---------------------------------------------------------------------------------------------------------------------------*/
END
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[ProcQueryTieZiAll]
@StartNo INT,@EndNo INT,@StrWhere nvarchar(2000),@OrderBy nvarchar(400), @Title nvarchar(200),@Code nvarchar(20)
AS BEGIN
DECLARE @SQL NVARCHAR(MAX), @SQLRowCount NVARCHAR(MAX)
IF @Title != ''
SET @StrWhere = @StrWhere + ' AND ps.Title LIKE ''%'+@Title+'%'' '
SET @SQL = 'SELECT * FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY '+@OrderBy+') rowNumber, t1.* ,t2.Username,s.ReTime,t3.Username as ReName
FROM (
SELECT ps.* FROM dbo.forums_Posts ps
INNER JOIN
(
SELECT HierarchyDataId FROM dbo.common_HierarchyData WHERE ParentHierarchyDataId=
(SELECT HierarchyDataId FROM dbo.common_HierarchyData where code='''+@Code+''')
) AS temp
ON ps.CategoryId=temp.HierarchyDataId
WHERE '+@StrWhere+'
) AS t1
left JOIN dbo.aspnet_Users AS t2 ON t1.CreatedBy=t2.UserId
left join (
select PostId,max(CreatedOn) as ReTime from dbo.forums_PostReplies group by postid
) s on t1.Id=s.PostId
left join dbo.aspnet_Users as t3 on t1.repliedby=t3.userid
) N
WHERE N.rowNumber between '+Convert(nvarchar(10), @StartNo)+' and '+Convert(nvarchar(10),@EndNo)+''
SET @SQLRowCount ='SELECT COUNT(*) FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY '+@OrderBy+') rowNumber, t1.* ,t2.Username,s.ReTime,t3.Username as ReName
FROM (
SELECT ps.* FROM dbo.forums_Posts ps
INNER JOIN
(
SELECT HierarchyDataId FROM dbo.common_HierarchyData WHERE ParentHierarchyDataId=
(SELECT HierarchyDataId FROM dbo.common_HierarchyData where code='''+@Code+''')
) AS temp
ON ps.CategoryId=temp.HierarchyDataId
WHERE '+@StrWhere+'
) AS t1
left JOIN dbo.aspnet_Users AS t2 ON t1.CreatedBy=t2.UserId
left join (
select PostId,max(CreatedOn) as ReTime from dbo.forums_PostReplies group by postid
) s on t1.Id=s.PostId
left join dbo.aspnet_Users as t3 on t1.repliedby=t3.userid
) N'
EXEC sp_executesql @SQLRowCount,
N' @StrWhere nvarchar(2000), @OrderBy nvarchar(400), @Title nvarchar(200), @Code nvarchar(20)',
@StrWhere, @OrderBy, @Title, @Code
EXEC sp_executesql @SQL,
N' @StartNo INT, @EndNo INT, @StrWhere nvarchar(2000), @OrderBy nvarchar(400), @Title nvarchar(200), @Code nvarchar(20)',
@StartNo, @EndNo, @StrWhere, @OrderBy, @Title, @Code
PRINT 'TotalCount:'+@SQLRowCount
PRINT '@SQL:'+@SQL
--EXEC ProcQueryTieZiAll 1,20,' 0=0 ' ,'','Hscode'
/*----------------------------------------------------------原始SQL----------------------------------------------------------*/
/*---------------------------------------------------------------------------------------------------------------------------*/
-- SELECT * FROM
--(
-- SELECT ROW_NUMBER() OVER(ORDER BY t1.CreatedOn DESC) rowNumber, t1.* ,t2.Username,s.ReTime,t3.Username as ReName
-- FROM (
-- SELECT ps.* FROM dbo.forums_Posts ps
-- INNER JOIN
-- (
-- SELECT HierarchyDataId FROM dbo.common_HierarchyData WHERE ParentHierarchyDataId=
-- (SELECT HierarchyDataId FROM dbo.common_HierarchyData where code='Hscode')
-- ) AS temp
-- ON ps.CategoryId=temp.HierarchyDataId
-- --WHERE ps.Title like '%2012%'
-- ) AS t1
-- left JOIN dbo.aspnet_Users AS t2 ON t1.CreatedBy=t2.UserId
-- left join (
-- select PostId,max(CreatedOn) as ReTime from dbo.forums_PostReplies group by postid
-- ) s on t1.Id=s.PostId
-- left join dbo.aspnet_Users as t3 on t1.repliedby=t3.userid
--) N
/*----------------------------------------------------------原始SQL----------------------------------------------------------*/
/*---------------------------------------------------------------------------------------------------------------------------*/
END