sql 动态存储过程

分页存储过程:

CREATE PROCEDURE [dbo].[getData]
-- Add the parameters for the stored procedure here
@tb varchar(150),
@status varchar(800),
@indexpage int,
@endpage int
AS
declare @str varchar(5000)
if @status is null
BEGIN

set @str=‘SELECT * FROM (SELECT ROW_NUMBER() OVER (order by T.ID desc)AS Row, T.* from ‘[email protected]+‘ T where ‘[email protected]+‘ ) TT WHERE TT.Row between ‘+str(@indexpage)+‘ and ‘+str(@endpage)
exec(@str)
END
else
BEGIN
set @str=‘SELECT * FROM (SELECT ROW_NUMBER() OVER (order by T.ID desc)AS Row, T.* from ‘[email protected]+‘ T where ‘[email protected]+‘ ) TT WHERE TT.Row between ‘+str(@indexpage)+‘ and ‘+str(@endpage)
exec(@str)
END

CREATE PROCEDURE [dbo].[getExport]
@status varchar(5000),
@tb varchar(80),
@s nchar(2)
AS
declare @sql varchar(5000)
if @status is null
BEGIN
set @sql=‘select * from ‘[email protected]+‘‘
exec(@sql)
END
else
BEGIN
if @tb=‘OutPutComponet_View‘
if @s=‘入库‘
set @sql=‘select t.ComponentName as 配件名称, t.TypeName as 类型,t.Unit1 as 单位,t.Count as 数量,t.Price as 价格,(t.Count*t.Price) as 总金额,t.Supplier1 as 供应商,t.IsOld as 是否旧件,t.WareHouse1 as 仓库,t.AddDate as ‘[email protected]+‘ from ‘[email protected]+‘ as t where ‘[email protected]+‘‘
else
set @sql=‘select t.ComponentName as 配件名称, t.TypeName as 类型,t.Unit1 as 单位,t.Count as 数量,t.Price as 价格,(t.Count*t.Price) as 总金额,t.Company as 借用公司,t.IsOld as 是否旧件,t.WareHouse1 as 仓库,t.AddDate as ‘[email protected]+‘ from ‘[email protected]+‘ as t where ‘[email protected]+‘‘
else if @tb=‘BorrowDetail_View‘
if @s=‘借出‘
set @sql=‘select t.ComponentName as 配件名称,t.TypeName as 类型,t.Unit1 as 单位,t.Count as 数量,t.Price as 价格,t.Borrower 借用人,t.Company 借用公司,t.Department 借用部门,t.IsOld 是否旧件,t.AddDate as ‘[email protected]+‘ from ‘[email protected]+‘ as t where ‘[email protected]+‘‘
else
set @sql=‘select t.ComponentName as 配件名称,t.TypeName as 类型,t.Unit1 as 单位,t.Count as 数量,t.Price as 价格,t.Borrower 归还人,t.Company 归还公司,t.Department 归还部门,t.IsOld 是否旧件,t.AddDate as ‘[email protected]+‘ from ‘[email protected]+‘ as t where ‘[email protected]+‘‘
else set @sql=‘select * from ‘[email protected]+‘‘
exec(@sql)

END

时间: 2024-08-30 09:05:10

sql 动态存储过程的相关文章

完整SQL分页存储过程(支持多表联接)

http://www.cnblogs.com/andiki/archive/2009/03/24/1420289.html Code/********************************************************* * 作 用:数据分页(完整SQL分页存储过程(支持多表联接))* 作 者:齐李平* 创建日期:2009-03-23* 使用说明: 1.单表调用方法:EXEC proc_DataPagination @tblName = 'ipa',@fldName

SQL 系统存储过程用法整理

---------------------------------------------------------------------------------- -- Author : htl258(Tony) -- Date   : 2010-07-06 23:13:19 -- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) --          Jul  9 2008 14:43:34 --    

SQL server存储过程,触发器,游标相关实例

1 use MySchool 2 go 3 4 alter proc P_stu 5 @pass int= 60 6 as 7 select AVG(StudentResult)as 平均分 8 from Result 9 10 select * from Result 11 where StudentResult< @pass 12 go 13 14 15 exec P_stu 16 17 go 18 19 ---创建带输出参数的存储过程 20 21 select * from Result

SQL Server存储过程的初步认知

什么是存储过程? 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令.实际上存储过程就是能完成一定操作的一组SQL语句. 为什么要用存储过程? 1.  存储过程只在创造时候编译,以后每次执行存储过程都不需要再重新的编译,而一般的SQL语句每执行一次就需要编译一次,所以使用存储过程可提高数据库执行速度. 2.  当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事物处理结合在一起. 3.  存储过程可以重复的使用,降低开发人员的工作量,提高工作效率. 4.  安全

Sql Server 存储过程中查询数据无法使用 Union(All)

原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正常的SQL语句,使用了Union(All)查询: SELECT ci.CustId --客户编号 , ci.CustNam --客户名称 , ci.ContactBy --联系人 , ci.Conacts --联系电话 , ci.Addr -- 联系地址 , ci.Notes --备注信息 , ai

SQL Server 存储过程具体解释

SQL Server 存储过程具体解释 存储过程的优缺点 ◆长处: 运行速度更快. 存储过程仅仅在创造时进行编译,而一般SQL语句每运行一次就编译一次,所以使用存储过程运行速度更快. 存储过程用于处理复杂的操作时,程序的可读性更强.网络的负担更小. 使用存储过程封装事务性能更佳. 能有效的放注入,安全性更好. 可维护性高.在一些业务规则发生变化时.有时仅仅需调整存储过程就可以.而不用修改和重编辑程序. 更好的代码重用. ◆ 缺点: 存储过程将给server带来额外的压力. 存储过程多多时维护比較

[转]关于SQL分页存储过程的分析

[转]关于SQL分页存储过程的分析 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作.而对于多表和大表中定义的游标(大的数据集合

SQL数据库&mdash;&mdash;存储过程

SQL数据库--存储过程 语法格式: use 数据库名 在存储过程第一行就要首先声明所在数据库 go create(alter) proc 存储过程名 形参(@-), - as begin 执行体 (return) end go 注意:建立一个存储过程后,修改的话应该把create 改为alter. 执行体内的语法: 1.定义变量:declare 变量名(@-) 数据类型 2.赋值语法:set/select 变量名=表达式 3.if语句格式: if- begin - end else begin

真正通用的SQL分页存储过程

关于SQL分页的问题,网上找到的一些SQL其实不能真正做到通用,他们主要是以自增长ID做为前提的.但在实际使用中,很多表不是自增长的,而且主键也不止一个字段,其实我们稍做改进就可以达到通用.这里还增加了索引,以方便大数据量的使用(代码中是先抓到临时表的,从性能上说如果采用自增长式的ID表,当然可以不使用临时表以达到性能的提升).以下代码的SP是经过我们项目使用通过的.因朋友问及此问题,我就放在这里供大家分享,如各位大侠有更好的方法,也请告诉我.在这里先感谢各位了. 1 CREATE PROCED