一.注释
-- 单行注释,从这到本行结束为注释,类似C++,c#中// /* … */ 多行注释,类似C++,C#中/* … */

二.变量

(int, smallint, tinyint, decimal,float,real, money ,smallmoney, text ,image, char, varchar。。。。。。)
语法: DECLARE { {@local_variable data_type} } [,...n]
例如: declare @ID int --申明一个名为@ID的变量,类型为int型

三.在SQL Server窗口中打印出变量的值

语法: 
PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expr

四.变量赋值   
例如: 
--从数据表中取出第一行数据的ID,赋值给变量@id,然后打印出来 Declare @ID int 
Set @ID = (select top(1) categoryID from categories) Print @ID 
在SQL中,我们不能像代码那样直接给变量赋值,例如@id = 1,如果要达到这样的功能,可以这样写: 
Declare @ID int 
Set @ID = (select 1) -- 类似 @ID=1 Select @id=1 -- 类似 @ID=1 Print @ID

五.变量运算(+,-,*,/,……) 
以下必要时候省略变量申明 
Set @ID = (select 1+5) --类似 @ID=1+5 
Set @ID=(select 1-@ID) --类似 @ID=1-@ID

六.比较操作符 
 > (greater than).  
 < (less than).   
 = (equals).   
 <= (less than or equal to).   
 >= (greater than or equal to).   
 != (not equal to).   
 <> (not equal to).   
 !< (not less than).   
 !> (not greater than)

七.语句块:Begin … end 
将多条语句作为一个块,类似与C++,C#中的{ } 例如: Begin 
Set @ID1 = (select 1) Set @ID2 = (select 2) End 
 
八.If, if…else… 语法: 
IF Boolean_expression 
{sql_statement | statement_block} [ELSE 
{sql_statement | statement_block}] 例如:  
If @id is not null Print ‘@id is not null if @ID = 1 
begin 
Set @ID = (select 1 + 1) end else 
begin   
set @ID=(select 1+2) 
end   
上面的例子用到了比较操作符,语句块,和IF的语法。  
  
九.执行其他存储过程 EXEC

例如 EXEC dbo.[Sales by Year] @Beginning_Date=’1/01/90’, @Ending_Date=’1/01/08’

十.事务  
语法: 
BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable]   
例如  
BEGIN TRAN 
-- 做某些操作,例如Insert into … if @@error <> 0 BEGIN 
ROLLBACK TRAN END else 
BEGIN 
COMMIT TRAN END

十一.游标 
我们可以在存储过程中用Select语句取出每一行数据进行操作,这就需要用到游标。   
语法: 
DECLARE cursor_name CURSOR [LOCAL | GLOBAL] 
[FORWARD_ONLY | SCROLL] 
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD] [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC] [TYPE_WARNING] FOR select_statement  
[FOR UPDATE [OF column_name [,...n]]]    
 
例如:  
DECLARE @au_id varchar(11), @au_fname varchar(20) –申明变量 --申明一个游标 
DECLARE authors_cursor CURSOR FOR   SELECT au_id, au_fname FROM authors   --打开游标

OPEN authors_cursor --取出值 
FETCH NEXT FROM authors_cursor INTO @au_id, @au_fname --循环取出游标的值 
WHILE @@FETCH_STATUS = 0 BEGIN Print @au_id Print @au_fname Print ‘ ’ 
FETCH NEXT FROM authors_cursor   INTO @au_id, @au_fname END 
CLOSE authors_cursor –关闭游标 
DEALLOCATE authors_cursor --释放游标

十二、执行存储过程

sp_helptext @objname = 'name'
sp_helptext [ @objname = ] 'name' [ , [ @columnname = ] computed_column_name 

示例:

sp_helptext '存储过程名称'

SQL SERVER 存储过程基础的更多相关文章

  1. sql server 存储过程基础知识

    转自家园大哥博文http://www.cnblogs.com/jiajiayuan/archive/2011/06/15/2081201.html 什么是存储过程呢?存储过程就是作为可执行对象存放在数 ...

  2. Sql server 存储过程基础语法

    一.定义变量 --简单赋值 declare @a int print @a --使用select语句赋值 declare @user1 nvarchar() select @user1='张三' pr ...

  3. 14、SQL Server 存储过程

    SQL Server 存储过程 存储过程类似函数,可以重复使用.相对于函数,存储过程拥有更强大的功能和更高的灵活性. 存储过程中可以包含逻辑控制语句和数据操作语句,可以接受参数,输出参数,返回单个值或 ...

  4. Sql Server数据库基础

    --------------------------------------第一章  Sql Server数据库基础------------------------------------------ ...

  5. 第一篇——第一文 SQL Server 备份基础

    原文:第一篇--第一文 SQL Server 备份基础 当看这篇文章之前,请先给你的所有重要的库做一次完整数据库备份.下面正式开始备份还原的旅程. 原文出处: http://blog.csdn.net ...

  6. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  7. SQL Server存储过程中使用表值作为输入参数示例

    这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...

  8. SQL Server存储过程Return、output参数及使用技巧

    SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...

  9. cmd常用命令 和 sql server相关基础

    在Java开发中 ms sql server 接触算是比较少的,本文记录一些ms sql server的基础知识. 1. 为表字段增加索引:create index user_openid on us ...

随机推荐

  1. Copying Linked Lists with Random Pointers

    Copying Linked Lists with Random Pointers 两个方法:方法一: 1.不考虑随机指针的情况下复制链表: 2.在复制过程中建立一个以原链表节点地址为key,相应的复 ...

  2. 11.在Global的Application_Error处理错误示例

    Application_Error是在程序出问题时触发的事件. 这里面要用到错误页的情况,所以要配置web.config的customError项. 1.建立Global文件,在它的Applicati ...

  3. 《Effective C++》内存管理

    如果global new-hander没有成功配置,会抛出一个std::bad_alloc的exception. #include<iostream> #include<new> ...

  4. bzoj1816

    这道题不是很难,二分答案+判定即可 注意在一套牌中Joker只能用一次 ..] of longint;     mid,l,r,n,m,i,ans:longint; function check(x: ...

  5. PowerDesigner将PDM导出生成WORD文档--温习老知识

    转:http://www.cnblogs.com/wudiwushen/archive/2010/05/13/1734812.html 今天的温习老知识,是如何将一个PD设计的PDM来导出WORD文档 ...

  6. Unity3d 超级采样抗锯齿 Super Sampling Anti-Aliasing

    Super Sampling Anti-AliasingSSAA算是在众多抗锯齿算法中比较昂贵的一种了,年代也比较久远,但是方法比较简单,主要概括为两步1.    查找边缘2.    模糊边缘这是一种 ...

  7. java基础(十二)常用类总结(二)

    这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...

  8. 基础排序算法之快速排序(Quick Sort)

    快速排序(Quick Sort)同样是使用了分治法的思想,相比于其他的排序方法,它所用到的空间更少,因为其可以实现原地排序.同时如果随机选取中心枢(pivot),它也是一个随机算法.最重要的是,快速排 ...

  9. MongoDB基础知识 02

    MongoDB基础知识 02 6 数据类型 6.1 null : 表示空值或者不存在的字段 {"x":null} 6.2 布尔型 : 布尔类型只有两个值true和false {&q ...

  10. maven怎么引入自定义jar的详细图文教程

    1 首先找到你的maven的配置文件{你maven的路径}\conf\settings.xml,然后打开settings.xml,并修改你存放本地jar路径.如我想把我自己的jar放到C:\Users ...