Jeg prøver å kjøre følgende ganske enkle spørring i SQL Server Management Studio:
SELECT TOP 1000 *
FROM
master.sys.procedures as procs
left join
master.sys.parameters as params on procs.object_id = params.object_id
Dette virker helt korrekt, men jeg får hele tiden følgende feilmelding:
Msg 102, Nivå 15, Tilstand 1, Linje 6
Feil syntaks i nærheten av ''.
Det fungerer hvis jeg tar ut join og bare gjør et enkelt select:
SELECT TOP 1000 *
FROM
master.sys.procedures as procs
Men jeg trenger joinen for å fungere. Jeg har ikke engang strengen '' i denne spørringen, så jeg skjønner ikke hva den ikke liker.
Slike uventede problemer kan oppstå når du kopierer koden fra en nettside eller e-post og teksten inneholder tegn som ikke kan skrives ut, for eksempel enkelte CR- eller LF-tegn og mellomrom som ikke kan brytes.
Panagiotis Kanavos har rett, av og til kan kopiere og lime inn T-SQL slik at uønskede tegn vises ...
Jeg har endelig funnet en enkel og rask måte (bare Notepad++ trengs) for å finne ut hvilket tegn som er feil, uten å måtte skrive om hele setningen manuelt: det er ikke nødvendig å lagre noen fil på disk.
Det går ganske raskt, i Notepad++:
Det er lett å finne feil(e) tegn.
Feilen for meg var at jeg leste SQL-setningen fra en tekstfil, og tekstfilen var lagret i formatet UTF-8 med BOM (byte order mark).
For å løse dette åpnet jeg filen i Notepad++ og valgte UTF-8 under Encoding. Alternativt kan du fjerne de tre første byte i filen med en hex-editor.