WEB开发网
开发学院数据库MSSQL Server SQL Server 2008:表值参数的创建和使用 阅读

SQL Server 2008:表值参数的创建和使用

 2008-05-27 09:55:36 来源:WEB开发网   
核心提示: USE[TestDB]GOIFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[usp_InsertProdLocation]')ANDtypein(N'P',N'PC

  USE[TestDB]
  GO
  IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[usp_InsertProdLocation]')ANDtypein(N'P',N'PC'))
  DROPPROCEDURE[dbo].[usp_selectProdLocation]
  GO
  CREATEPROCEDUREusp_InsertProdLocation
  @TVPOfficeLocation_TabetypeREADONLY
  AS
  SETNOCOUNTON
  INSERTINTOTestLocationTableSelectID,shortname,namefrom@TVP
  whereconvert(varchar(10),id)+shortname+namenotin(select
  convert(varchar(10),id)+shortname+namefromTestLocationTable)
  GO

这个存储过程将表变量作为导入值接收,并且只插入TestLocationTable中没有的数据。现在,我们可以尝试创建一个表变量,并执行上面创建的存储过程usp_InsertProdLocation,语句如下:

  useTestDB
  go
  DECLARE@TVAS[OfficeLocation_Tabetype]
  INSERTINTO@TV(Id,Shortname,Name)SELECT12,'ME1','Dubai'
  INSERTINTO@TV(Id,Shortname,Name)SELECT13,'ME2','Tehran'
  INSERTINTO@TV(Id,Shortname,Name)SELECT17,'EA1','Bombay'
  INSERTINTO@TV(Id,Shortname,Name)SELECT18,'EA2','Karachi'
  INSERTINTO@TV(Id,Shortname,Name)SELECT3,'NA3','NewYork'
  INSERTINTO@TV(Id,Shortname,Name)SELECT4,'EU1','London'
  execusp_InsertProdLocation@TV
  go

这时候,我们可以使用以下的TSQL语句从表TestLocationTable查询所有的数据:

上一页  1 2 3 4  下一页

Tags:SQL Server 参数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接