表4-26 客户转移存储过程
名字 参数 功能描述
Pr_MoveCustomerToOther 客户ID
接收方账号ID 将客户转移给另一个员工
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Pr_MoveCustomerToOther]
@CustomerID int,
@AccountID int
ASBEGIN
Update Customer SET AccountID = @AccountID,State='Y' WHERE Update Contact SET AccountID = @AccountID WHERE Update SendAddr SET AccountID = @AccountID WHERE END
表4-28 表单删除存储过程
名字 参数 功能描述
Pr_DelMainAndDetail 主表名称
明细表名称
表单编号 用于删除明细表和主表信息
CREATE PROCEDURE [dbo].[Pr_DelMainAndDetail]
(
@MainTable Varchar(50), --主表名称
@DetailTable Varchar(50), --明细表名称
@Filter Varchar(100) --表单编号
)
AS
EXEC(
'
DELETE FROM ' + @DetailTable + ' WHERE ' + @Filter + '
DELETE FROM ' + @MainTable + ' WHERE ' + @Filter + '
'
)毕业论文http://www.751com.cn/
表4-29 分页查询存储过程
名字 参数 功能描述
pg_GetList 主表名称,表字段,
查询条件,当前页码,
排序字段,返回总页数 分页查询,适用于所有表
CREATE PROCEDURE [dbo].[pg_GetList]
(
@CurrentPage int, --当前页码
@RowsPerPage int, --每页显示的条数
@Tables varchar(500), --表名称或视图名称
@Fields varchar(1000) = '*',--选择表的哪些字段
@Filter Varchar(500), --查询条件,不带Where
@Sort varchar(200) = NULL, --排序语句,不带Order By
@HowManyRows Int OUTPUT --总共有多少条数
)
AS
/*默认当前页*/
IF @CurrentPage < 1
SET @CurrentPage = 1
DECLARE @strSize INT
DECLARE @strStartRow VARCHAR(50)
Declare @strEndRow VARCHAR(50)
/*设置分页参数.*/
Set @strSize=(@CurrentPage-1)*@RowsPerPage+1 --从哪一行开始
SET @strStartRow = CAST(@strSize AS varchar(50))--转成字串
SET @strEndRow = CAST((@strSize+ @RowsPerPage-1) AS varchar(50))--哪行结束,字串
--求总数
declare @TmpSelect nVarchar(1000)
declare @intRowCount int
select @TmpSelect = 'set nocount on;select @RecordCount = count(*) from WHERE execute sp_executesql
@TmpSelect,
OUTPUT',
@RecordCount=@intRowCount OUTPUT
select @HowManyRows = @intRowCount
EXEC(
'毕业论文http://www.751com.cn/
--给目标数据加上行号
With AllRecoders as
(
SELECT ROW_NUMBER() OVER (ORDER BY '+ @Sort +') AS row_number, '+ @Fields +'
FROM '+ @Tables +'
Where '+ @Filter +'
)
--返回指定页面的数据
SELECT * from AllRecoders
WHERE row_number between AND '')