大家好,我想问一下数据库中declare关键字的作用和意义,使用场合,什么时候必须使用,什么时候可以不用?
比如,下面一个存储过程。create proc myProc
as
declare @name varchar(20)
declare @age int
select * from person where name=@name and age=@age
在这个存储过程中是否declare不要也是可以的? 就是作为一个变量嘛
另外一个小问题就是,比如我在数据库中有个字段为bit类型的,那么在数据库中显示的值自然就是true和false了,那么如果我想从数据库中查询出来的结构是“是,否”的话,怎么写呢。都是小问题,请大家赐教。

解决方案 »

  1.   

    声明变量和变量表是需要用到declare,楼主上诉存储过程中的declare是不可以省略的
      

  2.   

    case when 字段=true then '是' else '否' end
      

  3.   

    好的,感谢!“变量表”是什么?declare声明的使用情况不知道有哪些
      

  4.   

    表变量:
    declare @T1 table (id int.....)
      

  5.   


    create table t1
    (
    abc bit
    )
    insert into t1 (abc) values (0),(1),(0)
    select * from t1select case when abc=1 then 'True' else 'False' end from t1-----------------------
    (无列名)
    False
    True
    False
    True
      

  6.   

    就是定义变量用的,如果你要定义这个变量就需要declare如果是参数就不需要这个declare
    例如
    declare @i int  set @i=9
    上面的情况就需要。但是例如create proc procname (@i int)
    as
    begin
    select @i
    end变量作为参数的时候就不需要declare了。
      

  7.   

    declare  是个关键字啊。T-SQL 也是一种语言,它就是定义变量的一个关键字。
      

  8.   

    create proc myProc
    as
    declare @name varchar(20)
    declare @age int
    select * from person where name=@name and age=@age
    在这个存储过程中是否declare不要也是可以的? 就是作为一个变量嘛--上面这个是必须要的,,--这样可以不要,,做为参数的时候,,
    create proc myProc
     @name varchar(20)
     @age intas
    select * from person where name=@name and age=@age
      

  9.   

    参数的话不用declare,变量需要,6楼和9楼的说的很有道理。
      

  10.   

    受教了  知道了case when怎么用,但是declare还是不是很清楚