SQLServer通用分页存储过程,字符分隔函数
分页存储过程
sp_QueryPaging
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author:
-- Create date:
-- Description: 分页查询
-- 返回的数据中总是在每条记录前加上行号RowNumber列。
-- 如果未指定@StrSelect参数,相当于设置它为'*'
-- 如果未指定@Strfrom参数,不做查询,返回-1
-- 如果未指定@StrWhere参数,则忽略Where条件
-- 如果未指定@StrOrder参数,试着自动获得标识列作为@StrOrder,失败则不做查询,返回-1
-- 如果未指定@PageSize参数,或者它<=0,则返回全部记录
-- 如果未指定@PageIndex参数,会设置它为1,显示第一页数据
-- 参考:shiwenbin http://www.cnblogs.com/virusswb/archive/2009/10/20/1587179.html
-- =============================================
ALTER PROCEDURE [dbo].[sp_QueryPaging]
@StrSelect NVARCHAR(4000) = '*' , --欲显示的列(多列用逗号分开),例如:id,name
@Strfrom NVARCHAR(4000) , --表名称,或者是表连接字符串,多表连接例如:student as s inner join dwinfo as dw on s.dwbh=dw.bh
@StrWhere NVARCHAR(4000) = '' , --查询条件,''代表没有条件,单条件或者多条件,多条件例如:name='啊' and id=10
@StrOrder NVARCHAR(4000) , --排序列(多个排序列用逗号分开),例如:id desc,name as
@PageSize INT = 0 , --每页显示条数
@PageIndex INT = 1 , --当前页
@RecordCount BIGINT = -1 OUTPUT --返回当前页记录数
AS
BEGIN
SET NOCOUNT ON ;
IF @Strfrom IS NULL
BEGIN
RETURN -1
END
--若没有指定@StrOrder,试着获取标识列
IF @StrOrder IS NULL
BEGIN
DECLARE @identitycol NVARCHAR(50)
SET @identitycol = ( SELECT TOP ( 1 )
COLUMN_NAME
from INFORMATION_SCHEMA.columns
WHERE TABLE_NAME = @Strfrom
AND COLUMNPROPERTY(OBJECT_ID(@Strfrom),
COLUMN_N
相关文档:
/*
*SQLServer添加操作实现
*/
void CMFCSQLDlg::OnButton2()
{
// TODO: Add your control notification handler code here
CString strsql;
CString strnum="mynum3";
CString strage="myage3";
HRESULT hResult;
_variant_t RecordsAffected;
CoInitialize(NULL);
_ConnectionPtr m_pAppConn;
hResul ......
VS2008 添加SQLServer文件 经常会碰到错误,现在将几个常见的错误罗列一下,
“此版本的 sql server 不支持用户实例登录标志。该连接将关闭。”
解决办法:
在连接属性的设置里边,点“高级”,将User Instance 设置为false,默认的true,所以才导致这个问题的出现.
“与SQL Server文件(*.m ......
最近因为要写一个数据并发访问的控制程序,上网查了一些资料,现在归纳如下: 锁的概述 一. 为什么要引入锁
多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:
丢失更新
A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结 ......
本来我是不赞成使用通用存储过程的,主要是因为根据表结构来定制分页查询不用动态的拼SQL,这样才是真正的高效,而且只要写过一个,那么再有新需求的时候,小范围改动几处就ok了。
但总是有人向我讨要或者讨论通用存储过程,没办法,被逼无奈,良心丧与困境。
木有找到T-SQL代码编辑器
-- ============================= ......
代码如下:
DECLARE
@TempTable table(UserID int , UserName nvarchar(50));
insert into
@TempTable (UserID,UserName) values (1,'a')
insert into @TempTable
(UserID,UserName) values (2,'b')
select UserID,UserName
from @TempTable FOR XML PATH
运行这段脚本,将生成如下结果:
复制代码
......