執行循環, 複製遠程數據庫數據到本地時,怎樣動態改變set identity_insert tableName on中的表名(tableName)?我試了用游標取回表名賦給@tableName
再執行 set identity_insert @tableName on 但出錯
exec (‘set identity_insert’+ @tableName +’on’)也不行,這部份該怎樣寫?從遠程數據庫複製數據到本地數據庫有什麼好方法?(sql server 2005 到sql server 200)
再執行 set identity_insert @tableName on 但出錯
exec (‘set identity_insert’+ @tableName +’on’)也不行,這部份該怎樣寫?從遠程數據庫複製數據到本地數據庫有什麼好方法?(sql server 2005 到sql server 200)
解决方案 »
- 问一个关于SQL Server 2005登录的问题[Management Studio]
- 我用"导入和导出数据"复制数据库时,为何总是有几十个表无法复制.复制时,SQL 服务要停止吗?
- 急求,有关sql加asp问题。
- 取得最近两天的时间的新闻的SQL语句怎么写呢,谢谢
- WIN7 下装DB2 总报错
- 请教关于mssql触发器的问题
- 不用游标如何插入(insert)到表
- SQLServer备份数据库能否不备份一张大表?本周结贴!!!
- sqlserver2000的远程连接
- 请教一个简单的问题,怎样在VC。net中加如MYSQL的数据库文件?
- 为何我在asp里使用SQLServer2000里的全文索引后,Win2003S的CPU使用率狂涨?
- 触发器的怪问题
2通过sql语句挑出想要的数据,导到目的表
set @tb = 'tablename'
exec('set identity_insert ' + @tb + ' on')
謝謝提醒,script中有設off,我想問的是 hellowork(一两清风) 這個方面的答案.hellowork(一两清风)
謝謝你回復,不過你寫的代碼 exec('set identity_insert ' + @tb + ' on') 是不能執行的,我就是用你寫的方法,但會在exec('set identity_insert ' + @tb + ' on')這行報錯.
我的為:
exec('set identity_insert '+@fromPart + ' on')
go insert into yar(id,name,...) select * from [遠程地址].myDB.dbo.yar exec('set identity_insert '+@fromPart + ' off')
go
set @fromPart = 'tbName'
declare @sql varchar(1000)
set @sql = 'set identity_insert '+@fromPart + ' on
insert into yar(id,name,...) select * from [遠程地址].myDB.dbo.yar
set identity_insert '+@fromPart + ' off'
EXEC(@sql)
select name from sysobjects where xtype='u'
open cur_GetTableNamefetch cur_GetTableName into @tableName
while(@@fetch_status=0)
begin
set @tableFullName='[遠程地址].myDB.dbo.'+@tableName
set @Sqlcomm ='set identity_insert ' +@tableName + ' on
go
insert into '+@tableName+' select * from '+@tableFullName+'
set identity_insert '+@tableName + ' off
go'
EXEC (@Sqlcomm)
fetch cur_GetTableName into @tableName
endclose cur_GetTableName
deallocate cur_GetTableName
go