自动排除计算字段拷贝表数据

发表于: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