SQL Server 2008 每次给表增加字段之后,页面显示就会出错
原因在于页面提取数据用到了视图,每次都要alter一下视图(其实视图并不需要做改动)不知道什么新增字段之后要alter一下相关视图?

解决方案 »

  1.   

    因为你的视图是select * 是吧?
      

  2.   

    不是Select * 
    增加的是t_item表的字段SELECT dbo.T_SALESORDHDR.*,   dbo.T_TRDTYPE.F_DESC AS TRADEDESC, 
          dbo.T_ITEM.F_DESC AS ITEMDESC, dbo.T_INVOTYPE.F_DESC AS INVOTYPEDESC, 
          dbo.T_PAYTERM.F_DESC AS PAYTERMDESC, 
          dbo.T_PAYTYPE.F_DESC AS PAYTYPEDESC, 
          dbo.T_CUST.F_NAMESHT AS F_NAMESHT, dbo.T_EMP.F_NAME AS F_NAME, 
          dbo.T_EMP.F_LOGIN AS F_LOGIN, 
          dbo.T_ITEMTYPE.F_ISBOARD AS ITEMTYPEISBOARD
    FROM dbo.T_EMP INNER JOIN
          dbo.T_ITEMTYPE INNER JOIN
          dbo.T_ITEM ON dbo.T_ITEMTYPE.F_ID = dbo.T_ITEM.F_ITEMTYPE INNER JOIN
          dbo.T_PAYTERM INNER JOIN
          dbo.T_INVOTYPE INNER JOIN
          dbo.T_PAYTYPE INNER JOIN
          dbo.T_CUST INNER JOIN 
          dbo.T_TRDTYPE INNER JOIN
          dbo.T_SALESORDHDR ON 
          dbo.T_TRDTYPE.F_ID = dbo.T_SALESORDHDR.F_TRDTYPE ON 
          dbo.T_CUST.F_ID = dbo.T_SALESORDHDR.F_CUSTID ON 
          dbo.T_PAYTYPE.F_ID = dbo.T_SALESORDHDR.F_PAYTYPE ON 
          dbo.T_INVOTYPE.F_ID = dbo.T_SALESORDHDR.F_INVOTYPE ON 
          dbo.T_PAYTERM.F_ID = dbo.T_SALESORDHDR.F_PAYTERM ON 
          dbo.T_ITEM.F_ID = dbo.T_SALESORDHDR.F_ITEMID ON 
          dbo.T_EMP.F_ID = dbo.T_CUST.F_EMPID
      

  3.   

    SELECT dbo.T_SALESORDHDR.*,  --这不是表示*是什么?  问题就在这
     dbo.T_TRDTYPE.F_DESC AS TRADEDESC, 
          dbo.T_ITEM.F_DESC AS ITEMDESC, dbo.T_INVOTYPE.F_DESC AS INVOTYPEDESC, 
          dbo.T_PAYTERM.F_DESC AS PAYTERMDESC, 
          dbo.T_PAYTYPE.F_DESC AS PAYTYPEDESC, 
          dbo.T_CUST.F_NAMESHT AS F_NAMESHT, dbo.T_EMP.F_NAME AS F_NAME, 
          dbo.T_EMP.F_LOGIN AS F_LOGIN, 
          dbo.T_ITEMTYPE.F_ISBOARD AS ITEMTYPEISBOARD
    FROM dbo.T_EMP INNER JOIN
          dbo.T_ITEMTYPE INNER JOIN
          dbo.T_ITEM ON dbo.T_ITEMTYPE.F_ID = dbo.T_ITEM.F_ITEMTYPE INNER JOIN
          dbo.T_PAYTERM INNER JOIN
          dbo.T_INVOTYPE INNER JOIN
          dbo.T_PAYTYPE INNER JOIN
          dbo.T_CUST INNER JOIN 
          dbo.T_TRDTYPE INNER JOIN
          dbo.T_SALESORDHDR ON 
          dbo.T_TRDTYPE.F_ID = dbo.T_SALESORDHDR.F_TRDTYPE ON 
          dbo.T_CUST.F_ID = dbo.T_SALESORDHDR.F_CUSTID ON 
          dbo.T_PAYTYPE.F_ID = dbo.T_SALESORDHDR.F_PAYTYPE ON 
          dbo.T_INVOTYPE.F_ID = dbo.T_SALESORDHDR.F_INVOTYPE ON 
          dbo.T_PAYTERM.F_ID = dbo.T_SALESORDHDR.F_PAYTERM ON 
          dbo.T_ITEM.F_ID = dbo.T_SALESORDHDR.F_ITEMID ON 
          dbo.T_EMP.F_ID = dbo.T_CUST.F_EMPID
      

  4.   

    增加的是t_item表的字段,视图中没有抽取新增字段的查询啊,这也不行?求高手上一课,底层是怎么存储的视图,难道还把引用表的表结构也存储了?