SQL2008数据库:表值参数创建和使用(3)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQL数据库 2008:表值参数创建和使用(3)

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:使用创建参数数据库
黑客防线网安网讯:   查询结果如下所示:  Id, shortname, name   1, NA1, NewYork   2, NA2, NewYork   3, NA3, NewYork   4, EU1, London   5, EU2, London   6, AS1, Tokyo   7, AS2, Ho...

   查询结果如下所示:

  Id, shortname, name
  1, NA1, NewYork
  2, NA2, NewYork
  3, NA3, NewYork
  4, EU1, London
  5, EU2, London
  6, AS1, Tokyo
  7, AS2, HongKong
  12, ME1, Dubai
  13, ME2, Tehran
  17, EA1, Bombay
  18, EA2, Karachi
  (11 row(s) affected)
  从返回的结果我们可以看到存储过程usp_InsertProdLocation 插入了表变量@TV中和表TestLocationTable所有不匹配的行
  我们还可以将表变量传递给一个函数下面我们创建一个简单的函数语句如下:

  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版本上进行编写并经过测试的

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-11581-1.html
网站维护教程更新时间:2012-03-21 03:23:04  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer