首页新闻找找看学习计划

写通用的存储过程

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-11-02 23:00

想弄个通用的执行增删改查的存储过程,思路是在存储过程里面拼凑sql语句。求教。

**************的主页 ************** | 初学一级 | 园豆:124
提问于:2012-11-01 23:17
< >
分享
所有回答(3)
0

增删改查通用的存储过程?不会吧

增删改查没多麻烦 自己单写吧

建议别拼sql语句 会有sql注入的,这个大家都知道。。用参数化传递吧  sqlparameter

oppoic | 园豆:560 (小虾三级) | 2012-11-02 08:31
0

建议封装一个参数化数据库操作类,非常方便,又安全

jason2013 | 园豆:1998 (小虾三级) | 2012-11-02 08:38

这个方法 很实用 方便

支持(0) 反对(0) 隔壁王叔 | 园豆:4 (初学一级) | 2012-11-02 10:03
0

动态拼接SQL语句,传入表名、列名、以及要执行的类型('增删改查')

轻狂の书生 | 园豆:1040 (小虾三级) | 2012-11-02 11:03
 1 create proc usp_Select
 2 @tab varchar(50),--表名(用户输入)
 3 @Column_Name varchar(50) output, --主键
 4 @Pagesize varchar(50), --每页显示的记录数
 5 @Pageindex varchar(50),--要查询的页码值
 6 @sql varchar(500) output
 7 as
 8 begin
 9     declare @Pid int
10      declare @Physic_Name varchar(50)
11     select  @Pid=id from sysobjects where type='U' and name=@tab --根据用户输入的表名在sysobjects表中的id
12     select  @Physic_Name=name from sysobjects where xtype='PK' and parent_obj=@Pid --根据表的id值查询出属于该表的主键在sysobjects中的物理名称
13     select  @Column_Name=column_name from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE where constraint_name=@Physic_Name --根据物理名称找出主键对应的逻辑名称
14     set @sql='select * from (select row_number() over(order by '
15     set @sql=@sql+ @Column_Name 
16     set @sql=@sql+' asc) as 行号,* from '
17     set @sql=@sql+ @tab
18     set @sql=@sql+') as tab where tab.行号 between '
19     set @sql=@sql+@Pagesize
20     set @sql=@sql+'*('
21     set @sql=@sql+@Pageindex
22     set @sql=@sql+'-1)+1 and '
23     set @sql=@sql+@Pagesize
24     set @sql=@sql+'*'
25     set @sql=@sql+@Pageindex
26     exec(@sql)
27 end

 

给你贴个我以前写的代码,希望对你有所帮助

支持(0) 反对(0) 轻狂の书生 | 园豆:1040 (小虾三级) | 2012-11-02 11:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册