当前位置: 代码迷 >> Sql Server >> 如何创建带参数的视图,项目里面刚开始创建存储过程,后来想改成视图
  详细解决方案

如何创建带参数的视图,项目里面刚开始创建存储过程,后来想改成视图

热度:34   发布时间:2016-04-24 20:21:38.0
怎么创建带参数的视图,项目里面刚开始创建存储过程,后来想改成视图。
ALTER PROCEDURE [dbo].[GetNrequestItemByNFNo]
@nrequestformno varchar(100)
 AS

  SELECT 
      NRequestItemno
      ,[ItemSource]
      ,[NRequestFormNo]
      ,[BarCodeFormNo]
      ,[TollItemNo]
      ,[formno]
      ,[ParItemNo]
 ,(select cname from testitem where itemno=a.paritemno) as itemnamecw
 ,(select orderno from testitem where itemno=a.paritemno) as orderno
FROM dbo.NRequestItem a 
where nrequestformno=@nrequestformno
怎么添加视图。

------解决方案--------------------
视图不可以带参数,以你的要求,分两步走:先建视图,再用存储过程调用


create view vie_NRequestItem
as 
SELECT 
      NRequestItemno
      ,[ItemSource]
      ,[NRequestFormNo]
      ,[BarCodeFormNo]
      ,[TollItemNo]
      ,[formno]
      ,[ParItemNo]
 ,(select cname from testitem where itemno=a.paritemno) as itemnamecw
 ,(select orderno from testitem where itemno=a.paritemno) as orderno
FROM dbo.NRequestItem



ALTER PROCEDURE [dbo].[GetNrequestItemByNFNo]
@nrequestformno varchar(100)
AS
SELECT *
FROM vie_NRequestItem a 
where nrequestformno=@nrequestformno
go

------解决方案--------------------
你只要看看联机丛书就知道视图不能带参数的。还有,从常规效率、灵活性上来说,视图远不如存储过程,视图更适合权限管理。每个特性要合理使用,而不是想用就用
  相关解决方案