跳转至

十二、数据库编程

过程的类型

  • 可以将 Transact-SQL 语句以多种方式组合在一起:
  • (1) 使用批处理。批处理是作为一个单元从应用程序发送到服务器的一组 Transact-SQL 语句。每个批处理作为一个可执行单元来执行。
  • (2) 使用存储过程。存储过程是在服务器上预定义并预编译的一组 Transact-SQL 语句。存储过程可以接受参数,并可以将结果集、返回代码和输出参数返回给调用应用程序。
  • (3) 使用触发器。
  • (4) 使用脚本。脚本是存储在文件中的一系列 Transact-SQL 语句。

存储过程的作用

  • 接受输入参数并以输出参数的格式向调用过程或批处理返回多个值。
  • 包含执行数据库操作(包括调用其他过程)的编程语句。
  • 返回状态值,以指明成功或失败(以及失败的原因)。
  • 可以使用 Transact-SQL EXECUTE 语句执行存储过程。存储过程与函数不同,因为存储过程不返回取代其名称的值,也不能直接在表达式中使用
  • 存储过程与函数不同,因为存储过程不返回取代其名称的值,也不能直接在表达式中使用

Transact-SQL用户定义函数

  • 函数也是一种存储过程,只不过它能返回值,返回值可以是单个标量值或结果集
  • 用户定义函数是系统内置函数的扩展和补充的手段。某些情况下,用户定义函数可以替代视图和存储过程
  • SQL Server 支持三种用户定义函数:
  • 返回标量值(单值)的函数称为标量函数,
  • 返回结果集的函数称为表值函数
    • 内嵌(inline)表值函数:返回一个单条SELECT语句产生的结果的表,可看成带参数的视图
    • 多语句表值函数:返回一个由一条或多条Transact-SQL语句建立的表