As t-sql is not really designed for string handling, I would be inclined to look at writing a CLR function. You could try google for this but it is well beyond a forum post.If you really want to use t-sql, you could try recursion if the length of the notes is not too long. Otherwise you will have to use iteration.The following is an outline example of recursion:CREATE TABLE #t( Acct int NOT NULL ,Note nvarchar(MAX) NOT NULL);INSERT INTO #tVALUES (1, 'Blanket Lien Filed, account returned to Provider. Blah Blah will continue to follow and pursue lien payment. Called Pt Blahat xxx-xxx-xxxx. Left voice mail. Voicemail greeting did not state a name. Called Pt at xxx-xxx-xxxx. Left voice mail.Voicemail greeting did not state a name.');WITH RowNotesAS( SELECT Acct ,1 AS NoteRow ,LEFT(Note, SplitIndex) AS Note , SUBSTRING(Note, SplitIndex + 1, 1000000) AS RestNote FROM ( SELECT Acct, Note ,CASE WHEN NoteLen < 250 THEN NoteLen ELSE NoteLen + 1 - PATINDEX('%[^0-9,A-Z,a-z,-]%', REVERSE(LEFT(Note, 250))) END AS SplitIndex FROM ( SELECT Acct, Note ,LEN(LEFT(Note, 250)) AS NoteLen FROM #t ) D1 ) D UNION ALL SELECT Acct ,NoteRow ,LEFT(Note, SplitIndex) AS Note , SUBSTRING(Note, SplitIndex + 1, 1000000) AS RestNote FROM ( SELECT Acct, Note, NoteRow ,CASE WHEN NoteLen < 250 THEN NoteLen ELSE NoteLen + 1 - PATINDEX('%[^0-9,A-Z,a-z,-]%', REVERSE(LEFT(Note, 250))) END AS SplitIndex FROM ( SELECT Acct, RestNote As Note ,NoteRow + 1 AS NoteRow ,LEN(LEFT(RestNote, 250)) AS NoteLen FROM RowNotes WHERE LEN(RestNote) > 0 ) D1 ) D)SELECT Acct, NoteRow, NoteFROM RowNotesORDER BY Acct, NoteRow;