SQL Server: cualquier equivalente de strpos ()?

Estoy tratando con una base de datos molesta donde un campo contiene lo que realmente debería ser almacenado en dos campos separados. Así que la columna se almacena algo así como "La primera cadena ~ @ ~ La segunda cadena", donde "~ @ ~" es el delimitador. (Una vez más, no diseñé esto, solo estoy tratando de arreglarlo).

Quiero una consulta para mover esto en dos columnas, que se vería algo como esto:

UPDATE UserAttributes
SET str1 = SUBSTRING(Data, 1, STRPOS(Data, '~@~')),
    str2 = SUBSTRING(Data, STRPOS(Data, '~@~')+3, LEN(Data)-(STRPOS(Data, '~@~')+3))

Pero no puedo encontrar que exista ningún equivalente a strpos.

Respuestas a la pregunta(3)

Su respuesta a la pregunta