码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server 2008 表变量 临时表

时间:2015-11-05 22:17:12      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

最近做一个报表,其中 在报表中用到了存储过程,游标,cte表达式,临时表和表变量。

在游标中循环遍历cte中的数据,把对应的数据存放在变量里面,之后把变量插入到表变量中,游标结束后,想要根据存储过程的参数对表变量进行过滤时,问题就来了。

用动态sql拼接sql语句时,就会出错。提示时没有声明表变量。

其实,表变量不能运用在动态sql中。怎么办呢?我是把表变量中的数据插入到临时表中,之后 在动态sql中实用临时表进行拼接就可以了。

不知道 大家 有没有更好的想法。

注:

临时表 :

#tablename

表变量

DECLARE @tablename TABLE
(
    .....
)

在sql拼接时,拼接条件有一定的特殊写法

DECLARE @sql NVARCHAR(max)
DECLARE @cloum NVARCHAR(20)
SET @sql=select * from table where 条件列=+‘‘‘‘+@cloum+‘‘‘‘

 

SQL Server 2008 表变量 临时表

标签:

原文地址:http://www.cnblogs.com/yzhddeyan/p/4940689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!