本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!
/* 作者:张友邦 时间:2005-03-03 描述:简单的拷贝一个表的内容 版本:1.0 历史: 注意:*/alter procedure dbo.x_p_copytable( @tablename nvarchar(128), @condition nvarchar(1024) = n, @remoteserver nvarchar(128) = ntgm_old.span_tgm_020)asdeclare @sql nvarchar(4000)set @sql = nselect @cnt = count(*) from sysobjects, syscolumns where sysobjects.id = syscolumns.id and syscolumns.colstat = 1 and sysobjects.name = + @tablename + ndeclare @count intexecute sp_executesql @sql, n@cnt int output, @count outputif @count > 0 begin set @sql = nset identity_insert + @tablename + n on execute sp_executesql @sqlenddeclare @columns nvarchar(2048)set @columns = nselect @columns = @columns + syscolumns.name + n,from sysobjects, syscolumnswhere sysobjects.id = syscolumns.id and syscolumns.iscomputed <> 1 and sysobjects.name = @tablenameif len(@columns) > 0 begin set @columns = substring(@columns, 1, len(@columns) – 1)endset @sql = ninsert + @tablename + n( + @columns + n) + nselect + @columns + n from + @remoteserver + n.dbo. + @tablenameif @condition <> n begin set @sql = @sql + n where + @conditionendexecute sp_executesql @sqlif @count > 0 begin set @sql = nset identity_insert + @tablename + n off execute sp_executesql @sqlend
