• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQL创建的几种存储过程
    POST TIME:2021-10-18 18:59

    创建存储过程
    表名和比较字段可以做参数的存储过程
    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


    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两列不返回,其他都返回

    上一篇:将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本
    下一篇:为数据库生成某个字段充填随机数的存储过程
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信