想弄个通用的执行增删改查的存储过程,思路是在存储过程里面拼凑sql语句。求教。
增删改查通用的存储过程?不会吧
增删改查没多麻烦 自己单写吧
建议别拼sql语句 会有sql注入的,这个大家都知道。。用参数化传递吧 sqlparameter
建议封装一个参数化数据库操作类,非常方便,又安全
这个方法 很实用 方便
动态拼接SQL语句,传入表名、列名、以及要执行的类型('增删改查')
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
给你贴个我以前写的代码,希望对你有所帮助