SQL Server 2008:表值参数的创建和使用(4)_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:解析SQL Server数据应用在不同的数据库中
在软件开发的初始阶段,开发商们总是想把整个系统的最小的细节设计好了,然后再去单线程的编写代码。这样软件开发完成需要很长时间,但开发商们一直都在这么做。 所以开发者不得不去缩小他们

我们还可以将表变量传递给一个函数。下面我们创建一个简单的函数,语句如下:


  USE [TestDB]
  GO
  IF EXISTS (SELECT * FROM sys.objects
  WHERE object_id = OBJECT_ID(N'[dbo].[myfunction]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
  DROP FUNCTION [dbo].[myfunction]
  GO
  create function dbo.myfunction (@TV OfficeLocation_Tabetype READONLY)
  returns int
  as
  begin
  declare @i int
  set @i=(Select COUNT(*) from @TV)
  return @i
  end

  现在,我们通过创建一个表变量并将该变量作为一个参数传递给已创建的函数以调用该函数,语句如下:


  USE [TestDB]
  GO
  DECLARE @TV AS [OfficeLocation_Tabetype]
  INSERT INTO @TV (Id, Shortname, Name) SELECT 12,'ME1','Dubai'
  INSERT INTO @TV (Id, Shortname, Name) SELECT 13,'ME2','Tehran'
  INSERT INTO @TV (Id, Shortname, Name) SELECT 17,'EA1','Bombay'
  INSERT INTO @TV (Id, Shortname, Name) SELECT 18,'EA2','Karachi'
  INSERT INTO @TV (Id, Shortname, Name) SELECT 3,'NA3','NewYork'
  INSERT INTO @TV (Id, Shortname, Name) SELECT 4,'EU1','London'
  select dbo.myfunction(@TV)
  go

  执行结果如下:


  (1 row(s) affected)
  (1 row(s) affected)
  (1 row(s) affected)
  (1 row(s) affected)
  (1 row(s) affected)
  (1 row(s) affected)
  -----------
  6

  注:上面所演示的脚本都是在SQL Server 2008 CTP6版本上进行编写并经过测试的。

分享:快速清除SQLServer日志的两种方法
日志文件满而造成SQL数据库无法写入文件时,可用两种方法: 第一种方法:清空日志。 1、打开查询分析器,输入命令 DUMP TRANSACTION 数据库名 WITH NO_LOG 2、再打开企业管理器--右键你

共4页上一页1234下一页
来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2008-08-22
相关Mssql数据库教程