这种适合做拼接
给你一个我之前自己写过的一个拼接做参考,有点类似
***********用途*************1、历史表数据还原
*2、字段拼接
*3、实际表中数据插入历史表
*/
declare @sql varchar(max) = '',@zd varchar(max)
--获取最大的ID值
declare @maxid int
select A_id,name into #ls from (select ROW_NUMBER() over(order by c.name) A_id,c.name from
(select a.name 'A_name',b.* from sysobjects a,syscolumns b
where a.xtype='u' and a.name = 'a01'
and a.id = b.id) c,
(select a.name 'A_name',b.* from sysobjects a,syscolumns b
where a.xtype='u' and a.name = 'a01_insert'
and a.id = b.id) d
where c.name = d.name) j
select @maxid = max(j.A_id) from #ls
--循环拼接字段
declare @id int = 1
while(@id <= @maxid)
begin
select @zd = j.name from #ls j
where j.a_id = @id
set @id = @id + 1
--拼接字段
set @sql = @sql + @zd + ','
end
--拼接sql语句
set @sql = 'insert into a01(' + left(@sql,len(@sql) - 1) + ') ' + 'select ' + left(@sql,len(@sql) - 1) + ' from a01_insert'
--输出sql语句
print @sql
--执行sql语句
--exec(@sql)
go
select a.col1,a.col2,a.col3 from table1 a,table2 b where a.id=b.id and a.col1=b.col1 and a.col2=b.col2 and a.col3=b.col3如果返回的记录跟直接select * from table1 的记录完全一致的话,同时table1和table2的行数是一致的,则可以认为2个表的数据完全一致
SELECT A.NAME ,B.NAME FROM USER AINNER JOIN PLADD B ON A.NAME=B.PEOPLE.
查到所有有名字相同的记录,下一步就是添加评论了。
update,语句或者add语句都行,不可能所有的语句评论都一样吧,所以是要一条条的添加评论。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)