Use LEFT combined with CHARINDEX:  UPDATE  MyTable SET  MyText =  LEFT ( MyText ,  CHARINDEX ( ';' ,  MyText )  -  1 )  WHERE  CHARINDEX ( ';' ,  MyText )  >  0   Note that the WHERE clause skips updating rows in which there is no semicolon.   Here is some code to verify the SQL above works:  declare  @ MyTable table  ([ id ]  int primary  key  clustered ,  MyText varchar ( 100 ))  insert  into  @ MyTable ([ id ],  MyText )  select  1 ,  'some text; some more text'  union  all  select  2 ,  'text again; even more text'  union  all  select  3 ,  'text without a semicolon'  union  all  select  4 ,  null  -- test NULLs  union  all  select  5 ,  ''  -- test empty string  union  all  select  6 ,  'test 3 semicolons; second part; third part;'  union  all  select  7 ,  ';'  -- test semicolon by itself      UPDATE  @ MyTable SET  MyText =  LEFT ( MyText ,  CHARINDEX ( ';' ,  MyText )  -  1 )  WHERE  CHARINDEX ( '...