Here is some SQL code which might be useful for you, you can customize it as per your requirements. This does not use a table variable so should have a faster run time.
declare @school varchar(8000)
declare @pos1 int
declare @pos2 int
declare @err_code INT
set @pos1 = 1
set @pos2 = 1
set @school = '1232;23;45;56;746;'
set @pos2 = charindex(';',@school)
while (@pos1<@pos2)
begin
begin transaction
print substring(@school,@pos1,@pos2-@pos1)
-- Insert statement
if (@@Error>0)
begin
@err_code = @@Error
end
-- Update Statement
if (@@Error>0)
begin
@err_code = @@Error
end
-- Delete statement
if (@@Error>0)
begin
@err_code = @@Error
end
commit transaction
if(@err_code>0)
begin
PRINT 'Unexpected error occurred!' + STR(@err_code)
Rollback transaction
end
set @pos1 = @pos2 + 1
set @pos2 = @pos2+charindex(';',substring(@school,@pos1,len(@school)- @pos1+1))
end
Hope this helps.