创建视图时出现问题

lbaj123 2011-07-19 04:04:58
IF not EXISTS (select * from sysobjects where xtype= 'V 'and name= 'V_CH_GoodsWasteBook')
Create View V_CH_GoodsWasteBook
AS
SELECT rm.*,
rd.GoodsID,
rd.Unit, rd.Quantity, rd.Price, rd.Money,
rd.PurchaseUnit, rd.PurchaseQuantity, rd.PurchasePrice, rd.PurchaseMoney,
rd.GoodsModelID, rd.WasteQuantity, rd.WasteMoney
FROM CH_ReceiptDetail rd INNER JOIN CH_ReceiptMaster rm ON rd.ReceiptID = rm.ReceiptID


服务器: 消息 156,级别 15,状态 1,行 2
在关键字 'View' 附近有语法错误。

如果我不检查就不会出现问题。检查了视图是否存在就出现问题
...全文
126 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-07-19
  • 打赏
  • 举报
回复
是的。。
yyoinge 2011-07-19
  • 打赏
  • 举报
回复
IF not EXISTS (select * from sysobjects where xtype= 'V 'and name= 'V_CH_GoodsWasteBook')
begin
declare @r varchar(1000)
select @r = ' SELECT rm.*,
rd.GoodsID,
rd.Unit, rd.Quantity, rd.Price, rd.Money,
rd.PurchaseUnit, rd.PurchaseQuantity, rd.PurchasePrice, rd.PurchaseMoney,
rd.GoodsModelID, rd.WasteQuantity, rd.WasteMoney
FROM CH_ReceiptDetail rd INNER JOIN CH_ReceiptMaster rm ON rd.ReceiptID = rm.ReceiptID'
exec(@r)
end


lbaj123 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 acherat 的回复:]
SQL code


if exists(select 1 from sysobjects where xtype= 'V'and id=object_id(N'V_CH_GoodsWasteBook'))
drop view V_CH_GoodsWasteBook
go

Create View V_CH_GoodsWasteBook
AS
SELECT *
from ..……
[/Quote]

呵呵。我也想了下应该要删除了才行
AcHerat 元老 2011-07-19
  • 打赏
  • 举报
回复

if exists(select 1 from sysobjects where xtype= 'V'and id=object_id(N'V_CH_GoodsWasteBook'))
drop view V_CH_GoodsWasteBook
go

Create View V_CH_GoodsWasteBook
AS
SELECT *
from ....
where ....
lbaj123 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yyoinge 的回复:]
Create View语句前面不能有其他语句
[/Quote]
那我怎么判断这个视图存在还是不存在呢
lbaj123 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acherat 的回复:]
IF not EXISTS (select * from sysobjects where xtype= 'V 'and name= 'V_CH_GoodsWasteBook')
go

go 批处理结束。
[/Quote]

if not exists (select * from sysobjects where xtype= 'V 'and name= 'V_CH_GoodsWasteBook')
go
Create View V_CH_GoodsWasteBook
AS
SELECT rm.*,
rd.GoodsID,
rd.Unit, rd.Quantity, rd.Price, rd.Money,
rd.PurchaseUnit, rd.PurchaseQuantity, rd.PurchasePrice, rd.PurchaseMoney,
rd.GoodsModelID, rd.WasteQuantity, rd.WasteMoney
FROM CH_ReceiptDetail rd INNER JOIN CH_ReceiptMaster rm ON rd.ReceiptID = rm.ReceiptID


服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: ')' 附近有语法错误。
服务器: 消息 2714,级别 16,状态 5,过程 V_CH_GoodsWasteBook,行 3
数据库中已存在名为 'V_CH_GoodsWasteBook' 的对象。

---------
如果数据库中存在了这个视图。还是会执行下面创建视图的过程
我就是先如果存在了。就不创建视图
AcHerat 元老 2011-07-19
  • 打赏
  • 举报
回复
IF not EXISTS (select * from sysobjects where xtype= 'V 'and name= 'V_CH_GoodsWasteBook')
go

go 批处理结束。
yyoinge 2011-07-19
  • 打赏
  • 举报
回复
Create View语句前面不能有其他语句
yyoinge 2011-07-19
  • 打赏
  • 举报
回复
IF not EXISTS (select * from sysobjects where xtype= 'V 'and name= 'V_CH_GoodsWasteBook')
go
Create View V_CH_GoodsWasteBook
AS
SELECT rm.*,
rd.GoodsID,
rd.Unit, rd.Quantity, rd.Price, rd.Money,
rd.PurchaseUnit, rd.PurchaseQuantity, rd.PurchasePrice, rd.PurchaseMoney,
rd.GoodsModelID, rd.WasteQuantity, rd.WasteMoney
FROM CH_ReceiptDetail rd INNER JOIN CH_ReceiptMaster rm ON rd.ReceiptID = rm.ReceiptID

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧