您的位置:首页 > 数据库

如何用动态SQL返回临时表的组合查询数据

2010-01-24 17:41 507 查看

Createtable#table(numint,name1nvarchar(10),name2nvarchar(10))

Createtable#table1(numint,name1nvarchar(10))
insertinto#table1
select1,'a'unionallselect2,'b'
Createtable#table2(num1int,name2nvarchar(10))
insertinto#table2
select1,'aa'unionAllselect2,'bb'
declare@sqlstrnvarchar(1000)
--

set@sqlstr='selecta.*,b.name2from#table1asainnerjoin#table2asbona.num=b.num1'

insertinto#table
exec(@sqlstr)

select*from#table

droptable#table1
droptable#table2
droptable#table
按上面的这个方法,如果现在有这样的一种情况:
1.数据由多个临时表按组合查询,要形成一个大表,并且,大表里的数据比如主键,是不能重复的。
2.临时表的列字段不是固定的,有可能随机产生。
解决方法:
1.用@sql动态创建一个新的大表,里面包含了要产生的动态列字段。
2.用动态sql组合查询语法。
3.用exec执行查询语法,把结果集装到大表里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐