BCP and BULK load data for all tables in a given DB
January 30, 2008 | Leave a Comment
SET NOCOUNT ON
GO
DECLARE @path nvarchar(2000), @batchsize nvarchar(40),
@format nvarchar(40), @serverinstance nvarchar(200),
@security nvarchar(800)
SET @path = ‘C:Temp’;
SET @batchsize = ‘1000000′ – COMMIT EVERY n RECORDS
SET @serverinstance = ‘PGALLUCC-M7′ –SQL Server Instance name
SET @security = ‘ -T ‘ – -T (trusted), -Uloginid -Ploginpassword
–GENERATE CONSTRAINT NO CHECK
PRINT ‘–NO CHECK CONSTRAINTS’
SELECT ‘ALTER TABLE ‘ + QUOTENAME( TABLE_NAME ) + ‘ NOCHECK CONSTRAINT ‘
+ QUOTENAME( CONSTRAINT_NAME )
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
–DISABLE TRIGGERS
PRINT ‘–DISABLE TRIGGERS’
SELECT ‘ALTER TABLE ‘ + QUOTENAME( TABLE_NAME ) + ‘ DISABLE TRIGGER ALL’
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ‘BASE TABLE’
–BCP-OUT TABLES
PRINT ‘–BCP OUT TABLES ‘
SELECT ‘bcp “‘ + QUOTENAME( TABLE_CATALOG ) + ‘.’ + QUOTENAME( TABLE_SCHEMA )
+ ‘.’ + QUOTENAME( TABLE_NAME ) + ‘” out “‘ + @path + ” + TABLE_NAME + ‘.dat” -q -b”‘
+ @batchsize + ‘” -e”‘ + @path + ” + TABLE_NAME + ‘.err” -n -CRAW -o”‘ + @path + ”
+ TABLE_NAME + ‘.out” -S”‘ + @serverinstance + ‘” ‘ + @security + ”
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ‘BASE TABLE’
– CREATE NON-XML FORMAT FILE
PRINT ‘–NON-XML FORMAT FILE’
SELECT ‘bcp “‘ + QUOTENAME( TABLE_CATALOG ) + ‘.’ + QUOTENAME( TABLE_SCHEMA ) + ‘.’
+ QUOTENAME( TABLE_NAME ) + ‘” format nul -n -CRAW -f “‘ + @path + ”
+ TABLE_NAME + ‘.fmt” –S”‘ + @serverinstance + ‘” ‘ + @security + ”
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ‘BASE TABLE’
– CREATE XML FORMAT FILE
PRINT ‘–XML FORMAT FILE’
SELECT ‘bcp “‘ +QUOTENAME( TABLE_CATALOG ) + ‘.’ + QUOTENAME( TABLE_SCHEMA )
+ ‘.’ + QUOTENAME( TABLE_NAME ) + ‘” format nul -x -n -CRAW -f “‘
+ @path + ” + TABLE_NAME + ‘.xml” -S”‘ + @serverinstance + ‘” ‘ + @security + ”
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ‘BASE TABLE’
–TRUNCATE TABLE
PRINT ‘–TRUNCATE TABLE’
SELECT ‘TRUNCATE TABLE ‘ +QUOTENAME( TABLE_NAME ) + ‘
GO ‘
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ‘BASE TABLE’
–BULK INSERT
PRINT ‘–BULK INSERT’
SELECT DISTINCT ‘BULK INSERT ‘ + QUOTENAME(TABLE_CATALOG) + ‘.’
+ QUOTENAME( TABLE_SCHEMA ) + ‘.’ + QUOTENAME( TABLE_NAME ) + ‘
FROM ‘” + @path + ” + TABLE_NAME + ‘.Dat”
WITH (FORMATFILE = ‘” + @path + ” + TABLE_NAME + ‘.FMT”,
BATCHSIZE = ‘ + @batchsize + ‘,
ERRORFILE = ‘” + @path + ‘BI_’ + TABLE_NAME + ‘.ERR”,
TABLOCK);
GO ‘
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ‘BASE TABLE’
–OPENROWSET
PRINT ‘–OPENROWSET’
SELECT DISTINCT ‘INSERT INTO ‘ + QUOTENAME(TABLE_CATALOG) + ‘.’
+ QUOTENAME(TABLE_SCHEMA) + ‘.’ + QUOTENAME(TABLE_NAME) + ‘
SELECT *
FROM OPENROWSET(BULK ‘” + @path + ” + TABLE_NAME + ‘.Dat”,
FORMATFILE=’” + @path + ” + TABLE_NAME + ‘.Xml”
) as t1 ;
GO ‘
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ‘BASE TABLE’
–GENERATE CONSTRAINT CHECK CONSTRAINT TO VERIFY DATA AFTER LOAD
PRINT ‘–CHECK CONSTRAINT’
SELECT ‘ALTER TABLE ‘ + QUOTENAME( TABLE_NAME ) + ‘ CHECK CONSTRAINT ‘
+ QUOTENAME( CONSTRAINT_NAME )
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
–ENABLE TRIGGERS
PRINT ‘–ENABLE TRIGGERS’
SELECT ‘ALTER TABLE ‘ + QUOTENAME( TABLE_NAME ) + ‘ ENABLE TRIGGER ALL’
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ‘BASE TABLE’
Recently Ran Queries
January 23, 2008 | Leave a Comment
SELECT deqs.last_execution_time AS [Time], dest.text AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC

