1、创建一名为“MP1”的存储过程,其功能是在STUDENT表中添加一列AGE(表示学生年龄),再修改该列的值。
提示:添加列后用UPDATE命令进行修改,修改时必须利用CSRQ列值。
2、创建一存储过程,其功能是用来查询学号为“20004071102”的学生是否存在,若存在,则显示其学号、姓名、性别、所选修的课程的课程名及成绩值,否则显示“查无此人”
3、创建一自定义函数FIND,参数为学生的学号,返回值为该生姓名及性别。
4、创建一规则RULE1,规定数据取值范围为1-8之间,并将其绑定到课程表中的学期列上。并对课程表进行数据添加,检验规则是否发生作用。
5、结合AFTER、INSTEAD OF参数,分别创建INSERT、DELETED、UPDATE触发器
我刚刚学存储过程,想问问上面的怎么写?

解决方案 »

  1.   

    只能用
    exec('alter table '+@變量+'add '+@變量1 +'類型')
    exec('udpate '+@變量+' set '+@變量1+' 賦值')
      

  2.   

    --在同一个存储过程给某个表添加列,还要使用这一列,需要用动态SQL语句,如:create proc test 
    asexec ('alter table Student add age int')update student set age=datediff(yy,birthday,getdate())
    go
      

  3.   

    create proc test 
    as--先判断一下列是否存在,如果不存在,才添加列
    exec ('if not exists (select * from syscolumns where id=object_id(''Student'') and name=''age'')
     alter table Student add age int')update student set age=datediff(yy,birthday,getdate())
    go