September 2, 2004 at 12:55 am
I have been tasked to transfer Data from one database and covert it suitable for another database.
To start I would like to know the extent ot the tables
I have tried to create a script that reads all the table names (with more than one rowcount), that works, then does a Select Top 100 on the dynamic table that almost works, now ideally I need to dump the test data to excel or into a seperate database to analyse each batch of data. this is a problem as I am selecting into temp tables and haven't got the grasp of copying all 100 line dynamically to an new seperate database with the same column heading, and cannot find a script to modify to dump into excel
Any pointer would be helpful to an untrained beginner, first part of my code below
SET NOCOUNT ON
DECLARE @lngTabCount INTEGER
DECLARE @lngLoopCount INTEGER
DECLARE @strTabName SYSNAME
DECLARE @sql varchar(1000)
Create table #tmp1 (numID INTEGER IDENTITY(1,1),tables sysname)
USE EPDS01
INSERT INTO #tmp1
select [Table] = left(object_name(id), 65)
from dbo.sysindexes
where indid < 2
and objectproperty(id, 'IsUserTable') = 1
and rows > 0
Order by [Table]
SET @lngTabCount = @@ROWCOUNT +1
SET @lngLoopCount = 1
USE EPDS01
WHILE @lngLoopCount <@lngTabcount
BEGIN
SET @strTabName = (SELECT [tables] FROM #tmp1 WHERE numID = @lngLoopCount Group By [tables])
SELECT [tables] FROM #tmp1 WHERE numID = @lngLoopCount Group By [tables]
SELECT @sql = 'SELECT Top 100 * FROM '
SELECT @sql = @sql + @strTabname
Exec ( @sql)
SET @lngLoopCount = @lngLoopCount + 1
END
drop table #tmp1
Regards
Newbie
September 2, 2004 at 8:56 am
Undocumented, but it should work:
CREATE DATABASE NewDatabase EXEC sp_MSforeachtable 'IF (SELECT COUNT(*) FROM ?)>0 SELECT TOP 100 * INTO NewDatabase.? FROM ?'
Razvan
September 2, 2004 at 9:30 am
works a treat thank you
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply