This one is pretty much just for myself to remember.
Anyways, I made this for stripping MSO-content during an insert:
ALTER FUNCTION fnStripMso (@Text TEXT)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @Ret VARCHAR(8000);
SET @Ret = CONVERT(VARCHAR(8000),@Text);
DECLARE @Start INT
DECLARE @END INT
SET @Start = CHARINDEX('<!--',@Ret)
WHILE @Start > 0
BEGIN
SET @End = CHARINDEX('-->',@Ret,@Start)
IF @End > @Start
BEGIN
SET @End = @End + 3
SET @Ret = STUFF(@Ret,@Start,@End-@Start,'')
END
ELSE
BREAK
SET @Start = CHARINDEX('<!--',@Ret)
END
SET @Ret = LTRIM(@Ret)
SET @Ret = RTRIM(@Ret)
RETURN @Ret
END
GO