sql server 2008学习9 编写脚本和批处理

简介:

查看最后一行插入标识列的值

use test
go
insert into a(name) values('ss')
declare @ident int
select @ident=@@identity
select @ident
结果: 

image

 

 

查看语句响应了多少行

use test 
go
declare @rowCount int
select * from b
select @rowCount=@@rowcount
select @rowCount
效果如图:
image

 

批处理:

使用go可以将一个脚本,分为多个批处理

 

下面脚本创建一个表,

if not exists(
        select s.name,t.name from sys.schemas s 
        join sys.tables t on s.[schema_id]=t.[schema_id] 
        where s.name='dbo' and t.name='d')
    begin
        print 'table is not found .';
        print 'creating: table dbo.d';
        create table d( col1 int primary key);
    end
else
    print 'the table is exist'

运行结果:

image   image

 

case语句

简单case:
select top 5 

id,tem= case id%5 
          when 1 then 'first'
           when 2 then 'second'
            when 3 then 'third'
            else 'none'
             end
from b

结果:

 

image

 

搜索case语句:

于简单case的不同之处:

  1. 没有 case  和when之间的 表达式
  2. when表达式必须判断 为一个布尔值

搜索case最棒的地方就是  可以完全更改构成表达式基础的内容.

select top 9 
RowNumber,"info?"=case 
        when LoginName='sa' then '这是管理员登陆'
         when Duration>100 then '执行效率很低'
         else ' 没有匹配项'
         end
from dbo.test1

结果:

image

当 LoginName 有值的时候,走 when LoginName='sa' then '这是管理员登陆' 这句,当LoginName为null的时候,才走whenDuration>100 then '执行效率很低'   如果两列都没值,那么就 直走 else了

 

waitfor 语句

有两种结构:

一种是定时,一种是延迟

 

延迟的:

insert into a(name) values('1')
waitfor delay '00:01'   延迟1分钟执行下面的语句
insert into a(name) values('2')

效果如图:看 右下角红圈的地方,

image

 

定时:

select getdate()
waitfor time '16:17' 
insert into a(name) values('3')

如图:

image

image

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/09/11/2680000.html ,如需转载请自行联系原作者
相关文章
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
1139 56
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
10月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
10月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
SQL 关系型数据库 MySQL
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
543 2
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
514 1
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
143 0
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
437 3
|
存储 SQL Go
全网最长的sql server巡检脚本分享(1000行)
全网最长的sql server巡检脚本分享(1000行)
459 1
|
SQL 数据库
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
1632 0