i’ve now automated this process by using
drop function truins
go
create function truins
(
@fun varchar(10) = ‘’,
@src varchar(100) = ‘’,
@dst varchar(100) = ‘’,
@tbl varchar(100) = ‘’
)
returns varchar(500)
begin
declare @srctbl varchar(200)
declare @dsttbl varchar(200)
set @srctbl = @src + ‘.’ + @tbl
set @dsttbl = @dst + ‘.’ + @tbl
return
CASE @fun
WHEN ‘TRU’ THEN
‘truncate table ’ + @dsttbl
WHEN ‘DEL’ THEN
‘delete from ’ + @dsttbl
WHEN ‘DRP’ THEN
’ if NOT (OBJECT_ID(N’’’ + @dsttbl + ‘’’)) IS NULL drop table ’ + @dsttbl
WHEN ‘SEL’ THEN
’ select * into ’ + @dsttbl + ’ from ’ + @srctbl
WHEN ‘INS’ THEN
'insert into ’ + @dsttbl + ’ select * from ’ + @srctbl
END
end
go
select dbo.truins(‘TRU’,‘b’,‘c’,‘d’)
declare @src varchar(20)
declare @dst varchar(20)
set @src = ‘src’
set @dst = ‘dst’
select
dbo.truins(‘TRU’, @src, @dst, so.name) + char(13) + char(10)
from
sys.objects so
join
sys.schemas ss on so.schema_id=ss.schema_id
left join
sys.foreign_keys fk on so.object_id = fk.parent_object_id
where
so.type=‘U’ and ss.name = @src and
fk.parent_object_id is null
select
dbo.truins(‘DEL’, @src, @dst, so.name) + char(13) + char(10)
from
sys.objects so
join
sys.schemas ss on so.schema_id=ss.schema_id
left join
sys.foreign_keys fk on so.object_id = fk.parent_object_id
where
so.type=‘U’ and ss.name = @src and
fk.parent_object_id is not null
select
dbo.truins(‘INS’, @src, @dst, so.name)
from
sys.objects so
join
sys.schemas ss on so.schema_id=ss.schema_id
left join
sys.foreign_keys fk on so.object_id = fk.parent_object_id
where
so.type=‘U’ and ss.name = @src and
fk.parent_object_id is null
select
dbo.truins(‘INS’, @src, @dst, so.name)
from
sys.objects so
join
sys.schemas ss on so.schema_id=ss.schema_id
left join
sys.foreign_keys fk on so.object_id = fk.parent_object_id
where
so.type=‘U’ and ss.name = @src and
fk.parent_object_id is not null