自动排除计算字段拷贝表数据
发表于:2007-07-02来源:作者:点击数:
标签:
本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!! /* 作者:张友邦 时间:2005-03-03 描述:简单的拷贝一个表的内容 版本:1.0 历史: 注意:*/ALTER procedure dbo.x_p_copyTable( @tableName nvarchar
本文属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) = N@#TGM_OLD.span_tgm_020@#)asdeclare @sql nvarchar(4000)set @sql = N@#select @cnt = count(*) from sysobjects, syscolumns where sysobjects.id = syscolumns.id and syscolumns.colstat = 1 and sysobjects.name = @#@#@# + @tableName + N@#@#@#@#declare @count intexecute sp_executesql @sql, N@#@cnt int output@#, @count outputif @count > 0 begin set @sql = N@#set identity_insert @# + @tableName + N@# on@# execute sp_executesql @sqlenddeclare @columns nvarchar(2048)set @columns = N@#@#select @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 = N@#insert @# + @tableName + N@#(@# + @columns + N@#) @# + N@#select @# + @columns + N@# from @# + @remoteServer + N@#.dbo.@# + @tableNameif @condition <> N@#@# begin set @sql = @sql + N@# where @# + @conditionendexecute sp_executesql @sqlif @count > 0 begin set @sql = N@#set identity_insert @# + @tableName + N@# off@# execute sp_executesql @sqlend
原文转自:http://www.ltesting.net