是这样的 我建了 一个视图已经成功了因为表关系很多 我就 把视图 数据select into 到 一个表里边(表里数据和视图 一模一样 没改过)后来 我发现 视图数据更新了 那个表还是原来数据,我就又想再创建一个视图 可是我写 这个新视图时候 把 From 语句后边的 写错了写成 那个表
(本来应该是些 最早那个视图的,新建视图加入了自定义函数 是在原有视图上创建的)就这样 我把 新视图创建好了,后来觉得不对(因为新视图应该是从原来视图中获取 不是 那个从原视图生成的表里边)
我就改了下 From 后边的 东东 删除了 那个 表(可以叫临时表 用了下的那时间做测试用),现在 可以打开这个新视图 但我用SQL 分页 存储过程时候老说 那个被删除的表 是个无效对象 这个要怎么弄下
-------------------------------------------------------我把 视图名也改了 而且删除了 重新做的视图还是这样提示 真不知道咋弄了
可能 我没说很清楚 现在 大致 代码下表A 表B 表C 表D 生成 视图A然后 我用 视图A 生成 TempTableA再后 我 又建一视图B 基表为TempTableA (本应该是 由视图A来的 ,顺便说下 视图B里边加了自定义函数)这样觉得不对 就 修改了 视图B, 把它基于了视图A,然后删除了那个TempTableA 后来就出现了 我 说的那问题 一直告诉我 TempTableA 是个无效对象已经把视图B重新生成了 而且同样SQL语句创建的不同名的 视图C 也这样提示 悲剧呀 这个到底该怎么弄 下谢谢了
(本来应该是些 最早那个视图的,新建视图加入了自定义函数 是在原有视图上创建的)就这样 我把 新视图创建好了,后来觉得不对(因为新视图应该是从原来视图中获取 不是 那个从原视图生成的表里边)
我就改了下 From 后边的 东东 删除了 那个 表(可以叫临时表 用了下的那时间做测试用),现在 可以打开这个新视图 但我用SQL 分页 存储过程时候老说 那个被删除的表 是个无效对象 这个要怎么弄下
-------------------------------------------------------我把 视图名也改了 而且删除了 重新做的视图还是这样提示 真不知道咋弄了
可能 我没说很清楚 现在 大致 代码下表A 表B 表C 表D 生成 视图A然后 我用 视图A 生成 TempTableA再后 我 又建一视图B 基表为TempTableA (本应该是 由视图A来的 ,顺便说下 视图B里边加了自定义函数)这样觉得不对 就 修改了 视图B, 把它基于了视图A,然后删除了那个TempTableA 后来就出现了 我 说的那问题 一直告诉我 TempTableA 是个无效对象已经把视图B重新生成了 而且同样SQL语句创建的不同名的 视图C 也这样提示 悲剧呀 这个到底该怎么弄 下谢谢了
你说的真是有点绕啊..这也是你自己可能也被绕进去了..出问题的或许是存过上而非表上..
因为你已经SELECT ..INTO到一表里那说明那个表已经是实表.TempTableA ,只要TempTableA还存在就独立于视图、原始数据表。
SELECT ..INTO到一表里那说明那个表已经是实表.TempTableA 是把 视图A的数据写到TempTableA 啊后来 创建 视图B 先基于 这个TempTableA 最后 删除 TempTableA 的select 视图A into TempTableA
然后 创建视图B select a.*, 自定义函数(a.字段),函数(a.字段) From TempTableA A这样视图B 完成,后来我就改 成
select a.*, 自定义函数(a.字段),函数(a.字段) From 视图A A这下是不是 可以删除 TempTableA 了就这样 我现在用 视图B时候 它告诉我 TempTableA 不是有效对象
只要最后创建的视图不是基于TempTableA表那么TempTableA 怎么删除都不会影响到视图
SELECT ..INT……
[/Quote]
不好 意思 写错是这样的 原有视图 OrgDepUser_Viewselect * into 'NS_OrgDepUserForSearch_View' From [OrgDepUser_View]
CREATE VIEW [dbo].[Test_OrgDepUser]
AS
SELECT OrgID, OrgName, CityId, TownId, UserID, TrueName, UserName, AppoID, DepID, Portrait, Description, UserCityID, UserProvinceID, sUserID, ForteID,
Forte, dbo.UnionForteID(UserID) AS AllForteID, dbo.UnionForteStr(UserID) AS AllForte
FROM 'NS_OrgDepUserForSearch_View' 然后改成下边
CREATE VIEW [dbo].[Test_OrgDepUser]
AS
SELECT OrgID, OrgName, CityId, TownId, UserID, TrueName, UserName, AppoID, DepID, Portrait, Description, UserCityID, UserProvinceID, sUserID, ForteID,
Forte, dbo.UnionForteID(UserID) AS AllForteID, dbo.UnionForteStr(UserID) AS AllForte
FROM dbo.OrgDepUser_View最后删除 'NS_OrgDepUserForSearch_View'
现在 我创建的视图
CREATE VIEW [dbo].[Test_OrgDepUser]
AS
SELECT OrgID, OrgName, CityId, TownId, UserID, TrueName, UserName, AppoID, DepID, Portrait, Description, UserCityID, UserProvinceID, sUserID, ForteID,
Forte, dbo.UnionForteID(UserID) AS AllForteID, dbo.UnionForteStr(UserID) AS AllForte
FROM dbo.OrgDepUser_ViewCREATE VIEW [dbo].[T_OrgDepUser]
AS
SELECT OrgID, OrgName, CityId, TownId, UserID, TrueName, UserName, AppoID, DepID, Portrait, Description, UserCityID, UserProvinceID, sUserID, ForteID,
Forte, dbo.UnionForteID(UserID) AS AllForteID, dbo.UnionForteStr(UserID) AS AllForte
FROM dbo.OrgDepUser_View
上边执行时候 都会提示Msg 208, Level 16, State 1, Line 1
Invalid object name 'NS_OrgDepUserForSearch_View'.
把所有'NS_OrgDepUserForSearch_View'
改成:有'NS_OrgDepUserForSearch_View
你这是字符串 不是表或视图或其他可引用表结构..
--试试?
select * into NS_OrgDepUserForSearch_View From [OrgDepUser_View]
CREATE VIEW [dbo].[Test_OrgDepUser]
AS
SELECT OrgID, OrgName, CityId, TownId, UserID, TrueName, UserName, AppoID, DepID, Portrait, Description, UserCityID, UserProvinceID, sUserID, ForteID,
Forte, dbo.UnionForteID(UserID) AS AllForteID, dbo.UnionForteStr(UserID) AS AllForte
FROM NS_OrgDepUserForSearch_View
GO
/****** Object: Table [dbo].[NS_OrgDepUserForSearch_View] Script Date: 10/02/2011 21:55:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[NS_OrgDepUserForSearch_View](
[OrgID] [int] NOT NULL,
[OrgName] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NOT NULL,
[CityId] [int] NULL,
[TownId] [int] NULL,
[UserID] [int] NOT NULL,
[TrueName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[UserName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[AppoID] [int] NULL,
[DepID] [int] NULL,
[Portrait] [int] NULL,
[Description] [ntext] COLLATE Chinese_PRC_CI_AS NULL,
[UserCityID] [int] NULL,
[UserProvinceID] [int] NULL,
[sUserID] [int] NOT NULL,
[ForteID] [int] NOT NULL,
[Forte] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
创建视图USE [Public]
GO
/****** Object: View [dbo].[Test_OrgDepUser] Script Date: 10/02/2011 21:57:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[Test_OrgDepUser]
AS
SELECT OrgID, OrgName, CityId, TownId, UserID, TrueName, UserName, AppoID, DepID, Portrait, Description, UserCityID, UserProvinceID, sUserID, ForteID,
Forte, dbo.UnionForteID(UserID) AS AllForteID, dbo.UnionForteStr(UserID) AS AllForte
FROM dbo.OrgDepUser_View这两个有关系? 看半天 还是不明白
仅仅是恢复了 原来那个 表实在不明白 为什么现在删除了 NS_OrgDepUserForSearch_View 这个表 还不可以 和以前一样错难道必须要这个 NS_OrgDepUserForSearch_View 实在搞不明白
Forte, dbo.UnionForteID(UserID) AS AllForteID, dbo.UnionForteStr(UserID) AS AllForte
FROM dbo.OrgDepUser_View实在不好意思 问题出在这里了自定义函数 UnionForteID 和 UnionForteStr 用到NS_OrgDepUserForSearch_View 表 后来给忘了改现在 改成 OrgDepUser_View视图 NS_OrgDepUserForSearch_View 表就可以顺利被删除郁闷 + 悲剧+ 无语╮(╯▽╰)╭ 太马虎了 一直以为是SQL 视图 表 创建先后顺序问题