视图, CTE有相同的效果,但有何区别???

xdy3008 2010-06-14 04:36:34
突然想到视图能做的事情,CTE也可以做,那么他们分别有什么区别和好处呢 ? 什么时候用到比较好。
另外, CTE语句可以用到javacode中作为SQL来进行查询吗???


测试数据如下:


if object_id('dbo.test') is not null drop table dbo.test
CREATE TABLE [dbo].[test](
col1 [nchar](10) NULL,
col2 [decimal] NULL,
col3 [nchar](10) NULL
) ON [PRIMARY]


insert into test
select 'shana', 123, 'male' union all
select 'kangna', 78, 'female' union all
select 'veney', 678, 'female' union all
select 'bagala', 456, 'male' union all
select 'sen', 235, 'male'

-- 视图
alter view testView as
select col1 from test

select * from testView;

-- CTE 查询
with CTE as (
select col1 from test
)
select * from CTE
...全文
220 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
htl258_Tony 2010-06-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xdy3008 的回复:]
那么 CTE语句可以用到javacode中作为SQL来进行查询吗???
[/Quote]
普通代码能查,CTE就能查。
SQL77 2010-06-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xdy3008 的回复:]
那么 CTE语句可以用到javacode中作为SQL来进行查询吗???
[/Quote]
这些只不过是执行SQL语句吧,可以
xdy3008 2010-06-15
  • 打赏
  • 举报
回复
那么 CTE语句可以用到javacode中作为SQL来进行查询吗???
--小F-- 2010-06-14
  • 打赏
  • 举报
回复
CTE只在当前查询有效 而视图则不一样 而且视图有安全性等特征
三断笛 2010-06-14
  • 打赏
  • 举报
回复
CTE可以递归 十分强大,视图没有。
CTE想要的时候就定义,用完就消失,不占用服务器资源
dawugui 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyflystone 的回复:]
CTE只是临时结果集,类似派生表,不存储为对象,并且只在查询期间有效
[/Quote]视图长期有效.
lds1ove 2010-06-14
  • 打赏
  • 举报
回复
视图长期起作用

cte用完就不用了
-狙击手- 2010-06-14
  • 打赏
  • 举报
回复
CTE只是临时结果集,类似派生表,不存储为对象,并且只在查询期间有效

34,575

社区成员

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

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