SQL Server 2008:表值參數的創建和使用(2)_Mssql數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解析SQL Server數據應用在不同的數據庫中
      在軟件開發的初始階段,開發商們總是想把整個系統的最小的細節設計好了,然后再去單線程的編寫代碼。這樣軟件開發完成需要很長時間,但開發商們一直都在這么做。 所以開發者不得不去縮小他們

      然后,使用以下的DML SQL語句將數據添加到我們上面創建的表中:


        USE [TestDB]
        GO
        insert into TestLocationTable ( Id, shortname, Name) select 1, 'NA1', 'NewYork'
        insert into TestLocationTable ( Id, shortname, Name) select 2, 'NA2', 'NewYork'
        insert into TestLocationTable ( Id, shortname, Name) select 3, 'NA3', 'NewYork'
        insert into TestLocationTable ( Id, shortname, Name) select 4, 'EU1', 'London'
        insert into TestLocationTable ( Id, shortname, Name) select 5, 'EU2', 'London'
        insert into TestLocationTable ( Id, shortname, Name) select 6, 'AS1', 'Tokyo'
        insert into TestLocationTable ( Id, shortname, Name) select 7, 'AS2', 'HongKong'
        go

        下一步,我們要創建一個和TestLocationTable表具有相似表結構的表類型(TABLE TYPE),語句如下:


        USE [TestDB]
        GO
        IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id
        WHERE st.name = N'OfficeLocation_Tabetype' AND ss.name = N'dbo')
        DROP TYPE [dbo].[OfficeLocation_Tabetype]
        GO
        USE [TestDB]
        GO
        CREATE TYPE [dbo].[OfficeLocation_Tabetype] AS TABLE(
        [Id] [int] NULL,
        [shortname] [char](3) NULL,
        [name] [varchar](100) NULL
        )
        GO

        緊接著,我們要創建一個可以將表類型作為一個參數來接受的存儲過程,使用的語句如下:


        USE [TestDB]
        GO
        IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_InsertProdLocation]') AND type in (N'P', N'PC'))
        DROP PROCEDURE [dbo].[usp_selectProdLocation]
        GO
        CREATE PROCEDURE usp_InsertProdLocation
        @TVP OfficeLocation_Tabetype READONLY
        AS
        SET NOCOUNT ON
        INSERT INTO TestLocationTable Select ID, shortname, name from @TVP
        where convert(varchar(10),id) shortname name not in (select
        convert(varchar(10),id) shortname name from TestLocationTable)
        GO

      分享:快速清除SQLServer日志的兩種方法
      日志文件滿而造成SQL數據庫無法寫入文件時,可用兩種方法: 第一種方法:清空日志。 1、打開查詢分析器,輸入命令 DUMP TRANSACTION 數據庫名 WITH NO_LOG 2、再打開企業管理器--右鍵你

      來源:模板無憂//所屬分類:Mssql數據庫教程/更新時間:2008-08-22
      相關Mssql數據庫教程