zoukankan      html  css  js  c++  java
  • 代替Linq to SQL存储过程

    前些天学习了在Extjs的前台下,运用Linq to SQL语言从SQL数据库中取数据。

    后来,觉得Linq to SQL的语句有点麻烦,所以学习了一下SQL数据库中的存储过程去完成相似的功能。

    下面,把代码贴出来:

    1、单表查询:

    use STU
    //STU为所用数据库名
    go
    create procedure STU_selectAll
    //STU_selectAll为存储过程名
    as
    select
    * from student
    代码
    1、多表查询:
    use STU
    //STU为所用数据库名
    go
    create procedure STU_select
    //STU_selectAll为存储过程名
    as
    select S.stu_id,S.stu_name,C.cou_mark
    from student S inner Join course C
    //将S、C表连接起来
    on S.stu_id = C.stu_id
    /*带有参数的查询*/
    use STU
    go
    create procedure STU_select
    @inp_stu_id
    int
    as
    select
    * from student
    where stu_id
    = @inp_stu_id

    /*exec STU_select 2*/ //为这个查询的‘执行语句’
    代码
    *插入语句*/
    use STU
    go
    create procedure STU_insert
    @inp_stu_id
    int,
    @inp_stu_name nvarchar(
    10),
    @inp_stu_depart nvarchar(
    10),
    @inp_stu_age
    int
    as
    begin tran A
    insert into student values(@inp_stu_id,@inp_stu_name,@inp_stu_depart,@inp_stu_age)
    commit tran A
    go
    /*插入语句*/
    /*exec STU_insert 7,'张成','计算机',22*/
    代码
    /*修改语句*/
    use STU
    go
    create procedure STU_update
    @inp_stu_id
    int,
    @inp_stu_name nvarchar(
    10),
    @inp_stu_depart nvarchar(
    10),
    @inp_stu_age
    int
    as
    begin tran A
    update student set stu_name
    = @inp_stu_name, stu_depart = @inp_stu_depart, stu_age = @inp_stu_age
    where stu_id
    = @inp_stu_id
    commit tran A
    go
    /*修改语句*/

    /*删除语句*/
    use STU
    go
    create procedure STU_delete
    @inp_stu_id
    int
    as
    begin tran A
    delete from student
    where stu_id
    = @inp_stu_id
    commit tran A
    go
    /*删除语句*/
    代码
    /*一个带有双循环、输出参数的存储过程*/
    use FS
    go
    create procedure printA
    @inp_i
    int,
    @inp_j
    int,
    @out_i
    int output,
    @out_j
    int output
    as
    while @inp_i <3
    begin
    while @inp_j <2
    begin
    set @inp_j
    = @inp_j + 1
    set @out_j
    = @inp_j
    end
    set @inp_i
    = @inp_i + 1
    set @out_i
    = @inp_i
    end
    go


    /*执行语句*/
    declare @out_i
    int,@out_j int
    exec printA
    1,1,@out_i output,@out_j output
    print @out_i
    print @out_j
    代码
    /*带动态参数的存储过程*/
    use
    try
    go
    create procedure insert_xx
    @inp_url nvarchar(
    16)
    as
    declare @tem_one nvarchar(
    100)
    declare @tem_four nvarchar(
    30)
    declare @tem_total nvarchar(
    250)
    if @inp_url is null
    return
    else
    set @tem_one = N'insert into x select * from OPENROWSET(' + N'''' + N'MICROSOFT.JET.OLEDB.4.0' + N'''' + N',' + N'''' + N'Excel 5.0;HDR=YES;DATABASE=G:\'
    set @tem_four = N'.xls' + N'''' + N',sheet1$);'
    set @tem_total = @tem_one + @inp_url + @tem_four
    EXECUTE sp_executesql @tem_total
    /*带动态参数的存储过程*/
  • 相关阅读:
    异常之*** buffer overflow detected ***
    多媒体开发之视频回放---dm642 做rtsp 视频回放功能
    理财---炒股之kdj
    多媒体开发之rtp 打包发流--- 从h264中获取分辨率
    多媒体开发之rtsp 实现rtsp over tcp/http/udp---rtsp发送
    tomcat 简介
    tomcat 的安装
    rsync + inotify-tools实现文件的实时同步
    python 生成器
    ansible 常用模块
  • 原文地址:https://www.cnblogs.com/guolebin7/p/1794292.html
Copyright © 2011-2022 走看看