日期:2014-05-19  浏览次数:20405 次

路过看一下吧
我有两个视图:   v_1,v_2
同时运行添加进数据库,v_1视图里有调用v_2的语句,在添加运行时v_1先运行,而且同时v_2还不存在,这样数据库就会报个错:v_2对象无效。

请问怎样可以让这个错误不提示,要求v_1肯定先运行。

------解决方案--------------------
不能

视图会在系统表中记录相关的信息, 特别是要在 syscolumns 中记录列的相关信息, 如果相关的对象不存在, 这个信息是无法建立的, 这也就意味着视图无法建立
------解决方案--------------------
好像不行吧
------解决方案--------------------
哦,老大说不行了,那肯定不行!:)
------解决方案--------------------
肯定不行
一定要先create view v_2
然后v_1,再alter view v_2

不过不知能否在v_1中先把v_2建出来,来个调用阿?
------解决方案--------------------
能否考虑用以下语句将v_1设计成条件结构?再在v_1中创建v_2
if not exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[v_2] ') and OBJECTPROPERTY(id, N 'IsView ') = 1)