SQL Azure で使用するプロシージャを変換しようとしています。OPENXML
SQL Azure ではサポートされていないというエラーが最初に表示されましたが、 nodes
.
しかし、私はそのWITH (Id BIGINT '.')
部分を変換する方法がわかりません。WITH
サブクエリを作成することは知っていますが、'.'
ここで何をしているのでしょうか?
CREATE Procedure [dbo].[DocsR]
@ids xml -- <Ids><Id>1</Id><Id>2</Id></Ids>
AS
BEGIN
SET NOCOUNT ON;
DECLARE @IdsXml xml
exec sp_xml_preparedocument @IdsXml OUTPUT, @Ids
SELECT
DoctId,
DocNm
FROM
Docs
WHERE
--DocId IN (SELECT Id FROM OPENXML(@IdsXml, '/Ids/Id', 2) WITH (Id BIGINT '.'))
DocId IN (SELECT Id FROM @IdsXml.nodes('/Ids/Id') WITH (Id BIGINT '.'))
END
GO
エラー:
Incorrect syntax near the keyword 'with'. If this statement is a common
table expression, an xmlnamespaces clause or a change tracking context clause,
the previous statement must be terminated with a semicolon.