`
wangtong40
  • 浏览: 253991 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

T-SQL存储过程

阅读更多

存储过程
6.1.    创建无参数存储过程

IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'au_info_all' AND type = 'P')
DROP PROCEDURE au_info_all –判断如果存在XXX过程就删除

CREATE PROCEDURE au_info_all –创建存储过程
AS
SELECT pub_name FROM authors
 



SQLSERVER 调用方法:

EXECUTE au_info_all/ EXEC au_info_all
 

ORACLE 调用方法:
6.2.    创建有参数存储过程

IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'au_info' AND type = 'P')
DROP PROCEDURE au_info

CREATE PROCEDURE au_info
   @lastname varchar(40),
   @firstname varchar(20)
AS
SELECT au_lname, au_fname, title, pub_name
   FROM authors
   WHERE  au_fname = @firstname
      AND au_lname = @lastname
 



SQLSERVER 调用方法:

EXECUTE au_info 'Dull', 'Ann'
EXECUTE au_info @lastname = 'Dull', @firstname = 'Ann'
 



6.3.    创建有通配符参数存储过程
从四个表的联接中只返回指定的作者(提供了姓名)、出版的书籍以及出版社。该存储过程对传递的参数进行模式匹配,如果没有提供参数,则使用预设的默认值.

IF EXISTS (SELECT name FROM sysobjects
      WHERE name = 'au_info2' AND type = 'P')
   DROP PROCEDURE au_info2

CREATE PROCEDURE au_info2
   @lastname varchar(30) = 'D%',
   @firstname varchar(18) = '%'
AS
SELECT au_lname, au_fname, title, pub_name
FROM authors
WHERE au_fname LIKE @firstname
   AND au_lname LIKE @lastname
 


SQLSERVER 调用方法:

EXECUTE au_info2
EXECUTE au_info2 'Wh%'
EXECUTE au_info2 @firstname = 'A%'
EXECUTE au_info2 'Hunter', 'Sheryl'
EXECUTE au_info2 'H%', 'S%'
 



6.4.    创建有Output参数存储过程

IF EXISTS(SELECT name FROM sysobjects
      WHERE name = 'titles_sum' AND type = 'P')
   DROP PROCEDURE titles_sum

CREATE PROCEDURE
titles_sum
@@TITLE varchar(40) = '%',
@@SUM money OUTPUT
AS
SELECT 'Title Name' = title
FROM titles
WHERE title LIKE @@TITLE
SELECT @@SUM = SUM(price)
FROM titles WHERE title LIKE @@TITLE
 


SQLSERVER 调用方法:

DECLARE @@TOTALCOST money
EXECUTE titles_sum 'The%', @@TOTALCOST OUTPUT
IF @@TOTALCOST < 200
BEGIN
   PRINT 'All of these titles can be purchased for less than $200.'
END
ELSE
SELECT 'The total cost of these titles is $' + RTRIM(CAST(@@TOTALCOST AS varchar(20)))

 


6.5.    创建有Output游标参数存储过程

IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'titles_cursor' and type = 'P')
DROP PROCEDURE titles_cursor
CREATE PROCEDURE titles_cursor @titles_cursor CURSOR VARYING OUTPUT
AS
SET @titles_cursor = CURSOR
FORWARD_ONLY STATIC FOR
SELECT *
FROM titles
OPEN @titles_cursor
 



SQLSERVER 调用方法:

DECLARE @MyCursor CURSOR
EXEC titles_cursor @titles_cursor = @MyCursor OUTPUT
WHILE (@@FETCH_STATUS = 0)
BEGIN
   FETCH NEXT FROM @MyCursor
END
CLOSE @MyCursor
DEALLOCATE @MyCursor

 


6.6.    创建有WITH RECOMPILE存储过程
当每次调用存储过程时都重新编译存储过程,目前尚未发现这个参数的用处

CREATE PROCEDURE titles_by_author
@@LNAME_PATTERN varchar(30) = '%'
WITH RECOMPILE
AS
SELECT RTRIM(au_fname) + ' ' + RTRIM(au_lname) AS 'Authors full name',
   title AS Title
FROM authors a INNER JOIN titleauthor ta
   ON a.au_id = ta.au_id INNER JOIN titles t
   ON ta.title_id = t.title_id
WHERE au_lname LIKE @@LNAME_PATTERN
 



6.7.    创建有WITH ENCRYPTION存储过程
对存储过程进行加密,用于隐藏存储过程的文本,有编程私心的很重要噢!

CREATE PROCEDURE encrypt_this
WITH ENCRYPTION
AS SELECT * FROM authors
 


6.8.    调用用户定义的系统存储过程

6.9.    删除存储过程

DROP PROCEDURE procecureName
 


6.10.    在SQL中存储过程的调用
?    无参数存储过程调用

EXECUTE au_info_all
 


?    有参数存储过程调用

EXECUTE au_info 'Dull', 'Ann'
EXECUTE au_info @lastname = 'Dull', @firstname = 'Ann'
 


?    通配符存储过程调用

EXECUTE au_info2
EXECUTE au_info2 'Wh%'
EXECUTE au_info2 @firstname = 'A%'
EXECUTE au_info2 'Hunter', 'Sheryl'
EXECUTE au_info2 'H%', 'S%'
 


?    Output参数存储过程调用

DECLARE @@TOTALCOST money
EXECUTE titles_sum 'The%', @@TOTALCOST OUTPUT
IF @@TOTALCOST < 200
BEGIN
       PRINT ' '
END
ELSE
SELECT 'The total cost of these titles is $' + RTRIM(CAST(@@TOTALCOST AS varchar(20)))
 



?    Output游标参数存储过程调用

DECLARE @MyCursor CURSOR
EXEC titles_cursor @titles_cursor = @MyCursor OUTPUT
WHILE (@@FETCH_STATUS = 0)
BEGIN
   FETCH NEXT FROM @MyCursor
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
 

 

3
3
分享到:
评论
1 楼 gml520 2009-03-30  
楼主,你终结的非常好,谢谢你!!

相关推荐

    sql server2008轻松编写t-sql存储过程

    本文将重点介绍如何在SQL Server 2008环境中轻松编写T-SQL存储过程,并通过具体的示例来展示其实现方法。 #### 二、SQL Server Management Studio (SSMS) 在SQL Server 2008中,SQL Server Management Studio ...

    T-sql编程存储过程

    T-sql编程存储过程T-sql编程存储过程T-sql编程存储过程T-sql编程存储过程T-sql编程存储过程

    sql server 2012 T-SQl基础教程 源码和示例数据库

    本教程专注于Microsoft SQL Server 2012中的Transact-SQL(T-SQL)语言,这是SQL Server的主要查询语言,用于数据操作、查询、存储过程和数据库对象的编程。T-SQL是SQL Server开发者的核心技能,无论你是新手还是...

    T-SQL课件(介绍了T-SQL的一些基本知识)

    T-SQL提供了SQL的标准功能,如数据定义(DDL)、数据操纵(DML)和数据控制(DCL),同时增加了更多的编程元素,使其成为一种功能强大的非过程化编程语言。 1. T-SQL语言基础知识: - T-SQL是SQL的增强版,包含了...

    T-SQL语言基础 T-SQL语言基础

    局部变量的生命周期局限于定义它们的批处理或存储过程,因此它们通常用于存储临时数据。要声明局部变量,需要使用`DECLARE`语句,之后可以使用`SET`或`SELECT`来为变量赋值。例如: ```sql DECLARE @myvar char(20)...

    Inside Microsoft SQL Server 2008 T-SQL Programming.pdf

    它不仅覆盖了T-SQL编程的基础知识,还深入探讨了许多高级主题,如存储过程、触发器、函数等,同时还提供了大量的性能优化技巧和最佳实践建议。对于希望提升自己SQL Server技能的开发者和DBA来说,这是一本非常有价值...

    T-sql的存储过程

    **T-SQL存储过程详解** T-SQL,全称Transact-SQL,是SQL Server数据库管理系统中的编程语言,它是标准SQL的扩展,主要用于管理和操作Microsoft SQL Server数据库。T-SQL的强大之处在于它允许用户编写复杂的数据库...

    Inside Microsoft SQL Server 2008 T-SQL Programming

    T-SQL,即Transact-SQL,是SQL的一个扩展,主要用于微软的SQL Server系统中,用于数据查询、更新、插入和删除,以及复杂的存储过程和触发器的编写。 在SQL Server 2008版本中,T-SQL得到了许多增强和改进,这本书将...

    SQL、T-SQL与PL-SQL的区别

    SQL、T-SQL与PL-SQL的区别 SQL(Structured Query Language)是结构化查询语言,是负责与ANSI(美国国家标准学会)维护的数据库交互的标准语言。它是关系数据库的标准语言,已被众多商用DBMS产品所采用,使得它已...

    T-SQL示例大全(全是T-SQL语句 )

    2. 存储过程:存储过程是一组预先编译好的T-SQL语句,可以接受参数,返回值,甚至可以包含事务处理。创建存储过程的SQL语句是`CREATE PROCEDURE 存储过程名 AS BEGIN...END`,调用存储过程使用`EXEC 存储过程名 ...

    Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录.zip

    T-SQL是SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及数据库管理等任务。这本书的源代码及附录内容提供了丰富的实例和详尽的解释,帮助读者深化对T-SQL的理解和应用。 1. **T-SQL查询...

    Microsoft SQL Server 2008技术内幕:T-SQL查询.pdf

    T-SQL是微软SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及数据库对象的管理。本书详细阐述了如何有效地利用T-SQL来处理和分析数据。 在SQL Server 2008中,T-SQL得到了进一步的增强和...

    T-SQL用户指南&T-SQL用户手册打包下载

    T-SQL不仅仅是SQL的基础语法,它还提供了更丰富的功能,如流程控制、变量定义、函数使用、存储过程以及触发器等,使得数据库管理与开发更为高效和灵活。 1. **基本查询语句**:T-SQL的基础在于查询,SELECT语句用于...

    Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码

    T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中用于数据操作、查询、存储过程和数据库控制的一种扩展SQL语法。此书主要关注于如何高效地使用T-SQL进行数据检索和处理,为数据库管理员和开发人员提供...

    17套T-SQL试题

    T-SQL包含许多高级功能,如存储过程、触发器、函数(内置和用户定义)、视图、事务和批处理。存储过程是预编译的SQL代码集合,可提高性能和代码重用;触发器允许在数据更改前后自动执行操作;函数可以返回单个值或...

    [电子书] SQL Server 2012 T-SQL 实用技巧 (英文版)

    SQL(Structured Query Language)是用于管理和处理关系数据库的强大工具,而T-SQL(Transact-SQL)是SQL Server的扩展,增加了诸如事务处理、存储过程和触发器等高级功能。对于SQL Server 2012,T-SQL的掌握至关...

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    存储过程是预先编译并存储在数据库中的一个或多个T-SQL语句,可以被客户端程序通过名称调用执行。触发器是一种特殊类型的存储过程,它会在数据表上发生数据修改事件(如INSERT、UPDATE或DELETE)时自动执行。 十、...

    Microsoft SQL Server 2008 T-SQL Fundamentals

    在T-SQL中,存储过程和触发器是两个重要的高级概念。它们允许用户编写可重用的代码块,并在特定事件发生时自动执行。存储过程可以提高效率,减少网络流量,而触发器则可以实现数据的完整性约束。书中的这部分内容将...

    《T-SQL 2008 入门》[PDF]

    在T-SQL的进阶部分,读者将接触到存储过程和函数的创建与调用,这在实际开发中非常常用。存储过程可以封装复杂的逻辑,提高代码复用性,而函数则能返回单一值,便于在查询中使用。此外,触发器的概念也会被讲解,它...

    T-SQL程序设计

    T-SQL 程序设计是指使用 T-SQL 语言来设计和实现数据库应用程序的过程。 变量的定义和赋值是 T-SQL 程序设计的基础。变量是用于存储数据的容器,变量的定义包括变量名称、数据类型和初始值。例如,declare @student...

Global site tag (gtag.js) - Google Analytics