マイクロソフトMSDNのこのリンクによると:http://msdn.microsoft.com/en-us/library/aa933206(v =
sql.80)
これは、挿入ステートメントの構文です。
Syntax
INSERT [ INTO]
{ table_name WITH ( < table_hint_limited > [ ...n ] )
| view_name
| rowset_function_limited
}
{ [ ( column_list ) ]
{ VALUES
( { DEFAULT | NULL | expression } [ ,...n] )
| derived_table
| execute_statement
}
}
| DEFAULT VALUES
< table_hint_limited > ::=
{ FASTFIRSTROW
| HOLDLOCK
| PAGLOCK
| READCOMMITTED
| REPEATABLEREAD
| ROWLOCK
| SERIALIZABLE
| TABLOCK
| TABLOCKX
| UPDLOCK
}
さらにドキュメントでは、VALUES句の「*execute_statement*」を次のように定義しています。
execute_statement
SELECTまたは READTEXTステートメントでデータを返す有効なEXECUTEステートメントです。
ストアドプロシージャで次の形式を試しました。
INSERT INTO #MANAGERS (MANAGERCHARS)
READTEXT #MANAGERS.MANAGERIDS @ptrval @CharIndex 1
次のエラーが発生します。
Msg 156, Level 15, State 1, Procedure usp_TestQualityMonitor, Line 117
Incorrect syntax near the keyword 'READTEXT'.
この質問で調べたドキュメントによると、READTEXTはexecute_statementとして有効なメソッドである必要があるので、何が間違っているのでしょうか。なぜこのメッセージが表示されるのですか?そして、どうすればこのステートメントをエラーなしで正しくフォーマットできますか?
注:「VALUES」を削除してSQLを修正しました。それでも同じエラーが発生します。