下面就T-SQL的几个方面来分别讲解一下。

1、变量

 要动态的写sql语句,就不能没有变量。

声明变量并赋值:

1 declare @i as int;--定义一个 int 类型的 变量 (as可以省略)
2 print @i;--这注意:没有赋值之前,程序不会报错,而且输出一个 空
3 set @i=3;
4 print @i;

在sql server 2008之后就可以对变量 在声明的同时进行赋值

1 declare @a int=3;
2 print @a;

在变量的使用过程中,一定要注意nvarcahr 和nchar的区别。

1 declare @s nvarchar(20);
2 set @s='Hello';
3 set @s=@s+' World!';
4 print @s;--输出的是 Hello  World!
5 
6 declare @s2 nchar(20);
7 set @s2='Hello';
8 set @s2=@s2+' World!';
9 print @s2;--输出的是 Hello。

为什么使用nchar却是输出的 Hello,因为:nchar是固定长度,即使长度没有达到最大,但是其余长度用 空来代替了,所以 相当于是满的,所以在进行字符串的相加 是不会起作用的。

 

在查询中赋值:

1 declare @now datetime;
2 select @now=GETDATE();
3 print @now;
4 declare @orderNum int;
5 select @orderNum = COUNT(1) from [Sales.Orders];--这条查询语句只是用来 对 变量进行赋值的,不会返回查询结果的.
6 print @orderNum; 

主要作用:是将查询结果保存在 变量里,为了下面的使用。

其实也可以使用 set 赋值的方式 实现 上面的作用

1 set @orderNum =(select COUNT(1) from [Sales.Orders])
2 print @orderNum

2、批处理

 使用“go”,go前面的 所有的 语句处于在一个 批里面。不同批 的变量是不能互相调用。

3、流程控制

1)条件控制

1 declare @minute int ;
2 set @minute =DATEPART(minute,getdate());
3 if @minute>20
4    begin--一条语句可以将  begin end 省略
5       print '马上睡觉';
6    end
7 else
8    print '继续快乐玩耍';
if条件控制

相关文章:

  • 2021-11-13
  • 2021-06-27
  • 2021-06-16
猜你喜欢
  • 2021-08-05
  • 2021-08-12
  • 2022-12-23
  • 2021-11-02
  • 2022-02-25
  • 2022-02-04
  • 2021-12-31
相关资源
相似解决方案