1   declare @bname varchar(10),@age int
2    set @ @bname ='张三'
3    select @age=10
4    select @bname as 姓名,@age as 年龄
我想问下第2句是给变量赋值 
那第三局是很什么意思啊?  改成set @age=10  第四句执行的结果一样吗?[/size]

解决方案 »

  1.   

    第二句有问题,是SET @bname='张三',多了个@会报错的。
    第三句是赋值,赋值可以使用SET /SELECT,有时候值是来源于一个查询的时候,就要用SELECT,一般认为SET更加高效。所以你的改写完全没问题。只是注意第二句的@就好了
      

  2.   

    1 declare @bname varchar(10),@age int
    定义变量以及变量类型
    2 set @ @bname ='张三'
    给变量赋值,不过写错了 set @bname ='张三',应该只有一个@
    3 select @age=10
    也是给变量赋值,还可以从表取出一个字段赋值
    select @age=age
    from person
    where name = name
    4 select @bname as 姓名,@age as 年龄
    select输出表格显示变量,as成别名,方便操作。