OK、これは完全に文書化されておらず、試行錯誤して把握する必要がありましたが、エラー報告の行番号を設定します。例えば:
LINENO 25
SELECT * FROM NON_EXISTENT_TABLE
上の例では、27 行目のエラーを示すエラー メッセージが表示されます (LINENO 行を 1 行のコメントに変換した場合 (たとえば、2 つのハイフンを前に付けることにより)、3 行目ではなく):
Msg 208, Level 16, State 1, Line 27
Invalid object name 'NON_EXISTENT_TABLE'.
これは、Visual C++ および Visual C# の #line プリプロセッサ ディレクティブ (ちなみにドキュメント化されています) など、プログラミング言語の同様のメカニズムに関連しています。
これはどのように役立つのでしょうか? これを使用すると、(SQL よりも) 高レベルの言語からコードを生成したり、マクロ展開を実行したりする SQL コード ジェネレーターが、生成されたコード行をユーザー コード行に結び付けることができます。
PS、特にデータベースを扱う場合は、文書化されていない機能に依存することはお勧めできません。
更新: この説明は、現在のバージョンの SQL Server (この記事の執筆時点では SQL Server 2008 R2 Cumulative Update 5 (10.50.1753.0)) までは正しいものです。