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數據庫教程