批处理

print '批处理开始...';

select * from TB_STUDENTS;

select * from TB_MAJORS;

print '批处理结束';

go

select * from tb_students;

print '定义变量的批处理例子';

declare @name nvarchar(20);
declare @birthdate datetime;

select @name=STU_NAME, @birthdate=stu_birth_date from TB_STUDENTS where stu_id='20080102';

if (@name is null)
begin
 print '没有找到符合条件的记录';
end
else
begin
 declare @retval nvarchar(200);
 set @retval = '姓名: ' + @name + ' 生日:' + convert(nvarchar(20), @birthdate, 101);
 print @retval;  --convert函数这里把日期转化成MM/dd/yyyy格式的字符串
end

go

print '定义变量批处理的例子'
declare @name nvarchar(20);
declare @birthdate datetime;

select @name=STU_NAME,@birthdate=stu_birth_date from TB_STUDENTS where stu_id='20080102';

if(@name is null)
begin
 print '没有找到符合条件的记录'
end
else
begin
 declare @retval nvarchar(200);
 set @retval = '姓名:' + @name + '生日:' + convert(nvarchar(20),@birthdate,101);
 print @retval;
end


print 'while 循环的例子:打印出 100以内的质数'

declare @result nvarchar(500);
set @result = '2,3';

declare @i int; --从5开始至99的奇数
declare @j int; --从3开始至i的奇数
declare @zhi bit; --标志i是否质数

set @i=5;

while @i<100
begin
 set @j = 3;
 set @zhi=1;
 while @j < @i
 begin
  if((@i % @j) = 0) --i对j取余数,如果是0,则能够整除,i不是质数
  begin
   set @zhi = 0;
   break;
  end
  set @j=@j+2; --j始终是奇数
 end

 if(@zhi = 1)
 begin
  set @result = @result + ', ' + convert(nvarchar(4),@i);
 end 

 set @i=@i+2;  --i始终是奇数
end

print @result;
go

print 0


--验证哥德巴赫猜想对于10000内的偶数是否成立
declare @i int;
declare @j int;
declare @m int;
declare @n int;
declare @zhi bit;

set @i = 6

while @i <= 10000
begin
 set @j = 3;
 while @j <= (@i/2)
 begin
  set @m = 3;
  set @zhi=1;
  --判断j是否质数
  while @m <= sqrt(@j)
  begin
   if((@j % @m) = 0) --j对m取余数,如果是0,则能够整除,j不是质数
   begin
    set @zhi = 0;
    break;
   end
   set @m=@m+2; --j始终是奇数
  end

  --如果j是质数则判断 i-j是否质数
  if(@zhi = 1)
  begin
   set @n = @i - @j;
   set @m = 3;
  
   while @m <= sqrt(@n)
   begin
    if((@n % @m) = 0) --n对m取余数,如果是0,则能够整除,n不是质数
    begin
     set @zhi = 0;
     break;
    end
    set @m=@m+2; --j始终是奇数
   end

   --如果j和i-j都是质数,则输出j和i-j的值
   if(@zhi = 1)
   begin
    print convert(nvarchar(8),@i) + '=' + convert(nvarchar(8),@j) + '+' + convert(nvarchar(8),@n);
    break;
   end
  end 
  set @j = @j + 2;
 end

 set @i = @i + 2;
end


print'检验哥德巴赫猜想(6以上的偶数都能写成两个质数及奇数之和的形式)';

declare @i int;
declare @j int;
declare @m int;
declare @n int;
declare @h int;
declare @zhi1 bit;
declare @zhi2 bit;

set @i=6;
while (@i<100)
 begin
    set @j=3;
    while(@j<@i/2)
    begin
      set @m=@i-@j;
      set @n=@j-1;
      set @zhi1=1;
      while (@n>1)
        begin
            if(@j%@n=0)
             begin
               set @zhi1=0;
               break;
             end
         set @n=@n-1;
        end
    if(@zhi1=1)
    begin
         set @h=@m-1;
         set @zhi2=1;
         while (@h>1)
         begin
            if(@m%@h=0)
              begin
               set @zhi2=0;
               break;
              end
            set @h=@h-1;
         end
         if(@zhi2=1)
          begin
            print'偶数为:'+convert(nvarchar(8),@i)+'='+convert(nvarchar(8),@j)+'+'+convert(nvarchar(8),@m);
          end
    end
      set @j=@j+2;
    end
set @i=@i+2;
 end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值