http://expert.csdn.net/Expert/topic/508/508081.xml?temp=.2444879
解决方案 »
- sql server安装中得问题,求解决方法
- 根据查询结果,批量修改数据
- 简单的问题,在sqlserver2008中,使用dts建立了一个dts包,但是企业管理器中怎样找到?
- 求一SQL查询语句
- SQL语句:判断某个时间是周末的语句怎么写?求高手!!
- insert into code select * from tempcode
- 求一句sql
- 有条sql语句有点难,不知道如何简洁的写出来,所以发出来请教一下大家,大家感兴趣的进来看看,顺祝中秋节快乐!!
- 发布数据库和订阅数据库之间进行同步的时候,是按照数据库日志的顺序逐条应用修改呢?还是直接比较两者的不同并复制呢?
- 触发器出问题。。错在哪????
- 各位高人,请问该如何读VIEW里的数据?(急)
- 高难度SQL问题,挑战SQL高手!!(300分重谢)
2.使用循环读出并利用create table 组合成sql语句
3.加入数据
drop proc proc_sky_blue
go
create proc proc_sky_blue (@tablename varchar(200))
as
begin
set nocount on
declare @col nvarchar(20)
declare @makesql nvarchar(800)
declare @insertsql nvarchar(800)
declare @caculatesql nvarchar(800)
declare @count int
declare @i int
create table #tmp (colname nvarchar(20))
select @caculatesql = 'select @count=count(1) from ' + @tablename
exec sp_executesql @caculatesql, N'@count int output',@count output
select @i=0
while @count >0
begin
select @i=@i+1
select @makesql = 'alter table #tmp add col'+convert(varchar(20),@i)+' int'
exec(@makesql)
select @count=@count-1
end
declare my_cursor cursor for
select name from syscolumns where id=object_id(@tablename) order by colid
open my_cursor
fetch next from my_cursor into @col
while @@fetch_status = 0
begin
select @makesql ='select @insertsql= @insertsql + convert(varchar(12),'+@col+') +'', '' from ' +@tablename
select @insertsql =N'insert #tmp values ( '''+@col+ ''' ,'
execute sp_executesql @makesql,N'@insertsql nvarchar(800) output' ,@insertsql output
select @insertsql = left(@insertsql,len(@insertsql)-1) +')'
exec(@insertsql)
fetch next from my_cursor into @col
end
close my_cursor
deallocate my_cursor
select * from #tmp
set nocount off
endgo