源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

SQL创建的几种存储过程

  • 时间:2020-06-03 22:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:SQL创建的几种存储过程
创建存储过程 表名和比较字段可以做参数的存储过程 Create PROCEDURE sp_getTeacherInfo @TblName nvarchar(30), -- 表名 @CmpStr nvarchar(30), -- 参与比较的值 @TblAtr nvarchar(30) -- 参与比较的字段 AS DECLARE @sql varchar(4000) SET @sql = 'select * from ' + @TblName + ' where ' + @TblAtr + '=' + @CmpStr EXEC (@sql) 表 tbl_TeacherInfo [img]http://files.jb51.net/upload/201005/20100513195408605.png[/img] Exec sp_getTeacherInfo 'tbl_TeacherInfo','TeaNo', '07417502' // 注意:像这样的调用是错误的 还原成查询语句 select * from tbl_TeacherInfo where TeaNo = 07417502 之所以没报错,是因为参数'07417502'被误认为了 整型,进行了整数的比较 Exec sp_getTeacherInfo 'tbl_TeacherInfo','Name','楚留香' // 报错 还原成查询语句 select * from tbl_TeacherInfo where TeaNo = 楚留香 // 显然是错误的 正确的调用方法 Exec sp_getTeacherInfo 'tbl_TeacherInfo','Name',"'楚留香' " 还原成查询语句 select * from tbl_TeacherInfo where TeaNo = '楚留香' 常规存储过程的创建 Create PROCEDURE sp_AddRowToLogin @TeaNo nvarchar(100), -- 比较字段 @TeaName nvarchar(100) -- 比较字段 AS insert into tbl_UserLogin values(@TeaNo,@TeaName,@TeaNo,0) 除了指定列其他列都返回的存储过程 CREATE PROCEDURE sp_Alter @TblName nvarchar(30) -- 表名 AS declare @sql varchar(1000) select @sql='select ' select @sql=@sql+name+',' from syscolumns where id=object_id(@TblName) and name not in ('ID','TeaNo') select @sql=left(@sql,len(@sql)-1) select @sql=@sql+' from ' + @TblName exec (@sql) // 除了ID和TeaNo两列不返回,其他都返回
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部