'||' certainly works in Oracle, though not apparently SQL Server. (For those who come after us, here's a rosetta stone for SQL: SQL Dialects Reference)
If you're fixing up SQL scripts, I would consider the following solution:
BEFORE:
sql-shell-command < sql-file.sql
(sql-file contains '+' operators)
AFTER:
ansi-sql-shell-command < sql-file.sql
sed -e 's/||/\+/' < sql-file.sql | ms-sql-shell-command
(sql-file contains '||' operators, you'd have to convert your files)
The idea is that you start with SQL in one format, and for the special case, you run a filter over it to transform it to the other format. Theoretically, you could turn all '+'es into '||'s, but since a good proportion of those might be numeric-add rather than string-concatenation, that's unlikely to work as well.
The complexity of your filter depends on what you're doing. If you have arbitrary data in your SQL, then you'd have to get it to avoid substituting in strings. But if you're setting up views it'll probably be fine.
You could use the same technique in programs where the SQL is in strings - write a function in the program to turn it from one form to the other.