日期:2014-05-17  浏览次数:20535 次

怎么创建带参数的视图,项目里面刚开始创建存储过程,后来想改成视图。
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

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