zoukankan      html  css  js  c++  java
  • 存储过程创建案例

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go


    ALTER procedure [dbo].[prc_create_table](
    @banid varchar(50),
    @name varchar(50),
    @keyname varchar(50),
    @banzhu bigint,
    @ftstatus int,
    @htstatus int,
    @status int,
    @remark text
    )
    as
    declare @tiezhitabl varchar(100)--帖子表
    declare @huitietabl varchar(100)--回帖表
    declare @xgtiezitabl varchar(100)--帖子修改记录表
    declare @jcbiaotabl varchar(100)--奖惩记录表
    declare @sql1 varchar(500)
    declare @sql2 varchar(500)
    declare @sql3 varchar(500)
    declare @sql4 varchar(500)

    --帖子表cast(b as int)
    set @tiezhitabl='gb_bbs_tiezhi_'+@banid
    --回帖表
    set @huitietabl='gb_bbs_huitie_'+@banid
    --帖子修改记录表
    set @xgtiezitabl='gb_bbs_xgtiezi_'+@banid
    --奖惩记录表
    set @jcbiaotabl='gb_bbs_jcbiao_'+@banid
    --判断这张表是否存在
    if exists(select name from sys.objects where name=''+@tiezhitabl+'')
    begin
    select 0 as msg--0表示表已存在,创建表失败
    end
    else
    begin
    set @sql1='create table '+@tiezhitabl+'(id bigint primary key identity,
    title varchar(200) not null,
    content text not null,
    status int,
    ifjj int,
    ifdz int,
    fttime datetime,
    userid bigint FOREIGN KEY (userid) REFERENCES gb_bbs_user(id)
    )'
    if exists(select name from sys.objects where name=''+@huitietabl+'')
    begin
    select 0 as msg--0:表已存在,创建表失败
    end
    else
    begin
    set @sql2='create table '+@huitietabl+'(id bigint primary key identity,
    tieziid bigint FOREIGN KEY (tieziid) REFERENCES '+@tiezhitabl+'(id),
    content text,
    status int,
    fttime datetime,
    userid bigint FOREIGN KEY (userid) REFERENCES gb_bbs_user(id)
    )'
    if exists(select name from sys.objects where name=''+@xgtiezitabl+'')
    begin
    select 0 as msg--0:表已存在,创建表失败
    end
    else
    begin
    set @sql3='create table '+@xgtiezitabl+'(id bigint primary key identity,
    tieziid bigint FOREIGN KEY (tieziid) REFERENCES '+@tiezhitabl+'(id),
    userid bigint FOREIGN KEY (userid) REFERENCES gb_bbs_user(id) ,
    updatetime datetime,
    content text
    )'
    if exists(select name from sys.objects where name=''+@jcbiaotabl+'')
    begin
    select 0 as msg --0:表示表已存在,创建表失败
    end
    else
    begin
    set @sql4='create table '+@jcbiaotabl+'(id bigint primary key identity,
    tieziid bigint FOREIGN KEY (tieziid) REFERENCES '+@tiezhitabl+'(id),
    time datetime,
    content text
    )'
    begin tran --事务开始
    --添加板块
    insert into dbo.gb_bbs_bankuai ( name, keyname, banzhu, ftstatus, htstatus, status, remark) values (@name,@keyname,@banzhu,@ftstatus,@htstatus,@status,@remark)
    exec(@sql1)
    exec(@sql2)
    exec(@sql3)
    exec(@sql4)
    if(@@error<>0)
    begin
    rollback tran
    select 1 as msg--创建表遇到未知错误
    end
    -- else if(@@Trancount>0)
    -- begin
    -- rollback tran
    -- end
    else
    begin
    commit tran
    select 2 as msg
    end

    end
    end
    end
    end


    execute prc_create_table '21','abc','abc',2,0,0,0,'abc'

    =================================================

    调用

    protected void Page_Load(object sender, EventArgs e)
    {
    SqlConnection conn = null;
    try
    {
    conn = new SqlConnection("server=.;database=n_xy28_data;uid=sa;pwd=123");
    SqlCommand cmd = new SqlCommand();
    SqlDataReader dr = null;
    cmd.Connection = conn;
    cmd.CommandText = "prc_create_table";
    cmd.CommandType = CommandType.StoredProcedure;
    //创建参数
    IDataParameter[] parameters ={new SqlParameter("@banid",SqlDbType.VarChar,50),
    new SqlParameter ("@name",SqlDbType .VarChar,50),
    new SqlParameter ("@keyname",SqlDbType .VarChar,50),
    new SqlParameter("@banzhu",SqlDbType .BigInt ),
    new SqlParameter ("@ftstatus",SqlDbType .Int),
    new SqlParameter ("@htstatus",SqlDbType .Int ),
    new SqlParameter ("@status",SqlDbType .Int),
    new SqlParameter ("@remark",SqlDbType.Text)
    };
    //设置参数
    parameters[0].Value = "123456";
    parameters[1].Value = "123456fda";
    parameters[2].Value = "123abc";
    parameters[3].Value = 2;
    parameters[4].Value = 1;
    parameters[5].Value = 1;
    parameters[6].Value = 1;
    parameters[7].Value = "此处是备注";
    //添加参数
    cmd.Parameters.Add(parameters[0]);
    cmd.Parameters.Add(parameters[1]);
    cmd.Parameters.Add(parameters[2]);
    cmd.Parameters.Add(parameters[3]);
    cmd.Parameters.Add(parameters[4]);
    cmd.Parameters.Add(parameters[5]);
    cmd.Parameters.Add(parameters[6]);
    cmd.Parameters.Add(parameters[7]);
    conn.Open();
    Label1.Text = cmd.ExecuteNonQuery().ToString();

    dr = cmd.ExecuteReader();


    DataTable dt = new DataTable();
    dt.Load(dr);
    this.GridView1.DataSource = dt;
    this.GridView1.DataBind();
    }
    catch (Exception ex)
    {

    Response.Write(ex.Message);
    return;
    }
    finally {
    conn.Close();
    }

    }

  • 相关阅读:
    layui的table使用,二
    将字符串中的以某个字符间隔放到数组中
    oracle中的 函数应用
    spring 的3种常用的注入方式
    写一个方法,输入两个正整数,输出在两个正整数范围内即被3整除,又被7整除的正整数
    Myeclipse 10.7配置egit及导入项目
    Plsqi安装
    web项目引入js包时,报syntax error on token
    java笔试面试题总结
    web.xml中的配置
  • 原文地址:https://www.cnblogs.com/caijingui/p/3612957.html
Copyright © 2011-2022 走看看