DECLARE @LotsOfText VARCHAR(MAX)
SELECT @LotsOfText = BulkColumn
FROM OPENROWSET(BULK 'C:\workbench\c_a_p.txt', SINGLE_BLOB) AS x
/* read each word into a table (we make it a temporary table as we don't want to
keep it for ever!*/
CREATE TABLE ##word
(
Word_ID INT IDENTITY(1, 1)
PRIMARY KEY,
item VARCHAR(80)
)
INSERT INTO ##word
(ITEM)
SELECT item
FROM wordchop(@LotsOfText)
---48 seconds (214243 words)
--USE DOCUMENTER
--SELECT NAME FROM SYSOBJECTS WHERE NAME LIKE 'NUMBERS'
--169683
CREATE TABLE ##log
(
Log_ID INT IDENTITY(1, 1),
Event VARCHAR(30),
param INT,
InsertionDate DATETIME DEFAULT GETDATE()
)
DECLARE @command VARCHAR(255),
@ActualCommand VARCHAR(255)
SELECT @Command = '
DECLARE @STRING VARCHAR(MAX)
insert into ##log (event,param) Select ''concatenate || rows'',||
SET ROWCOUNT ||
sELECT @sTRING =COALESCE(@String,'''')+item from ##word'
DECLARE @ii INT
SELECT @ii = 1000
WHILE @ii < 200000
BEGIN
SELECT @ActualCommand = REPLACE(@command, '||', CONVERT(VARCHAR(8), @ii))
EXECUTE (@ActualCommand)
SELECT @ii = @ii + 1000
END
SELECT event,
[rows] = param,
[Time (Ms)] = DATEDIFF(ms, [InsertionDate],
(SELECT [InsertionDate]
FROM ##log f
WHERE f . Log_ID = g . Log_ID + 1
)
)
FROM ##log g
WHERE Log_ID < ( SELECT MAX (Log_ID) FROM ##log )