-1
一度に1レコードをテーブルに送信する必要があります(一度に1レコードあります)。 このコードを使用して、SQL Server 2012(オフセットを使用)で変数@msg
を設定しました。SQL Server 2012で使用されているOFFSETとSQL Server 2008の必要性と回答
@msg
は、変数XML
です。
WHILE @Rowcount > 0
BEGIN
SELECT @Rowcount = @Rowcount - 1
SET @msg = '<rptlr>' + (SELECT * FROM Deleted rptlr_d ORDER BY VENDOR
OFFSET @Rowcount ROWS FETCH NEXT 1 ROWS ONLY FOR XML AUTO, ELEMENTS) + '</rptlr>'
IF @company IS NOT NULL
INSERT INTO RPTLR (company, winnam, ddf, action, msg, dsn)
VALUES (@company, 'APPU', '000354', 'delete', @msg, @dsn)
END
私はこのように2008年に設定しようとしました(混乱しています)。
SET @msg = '<rptlr>' + (SELECT RANK() OVER (ORDER BY VENDOR) AS rank,*
FROM Deleted rptlr_d ORDER BY RANK WHERE rank = @Rowcount
FOR XML AUTO, ELEMENTS) + '</rptlr>'
これは私がもSELECT * (SELECT *, ROW_NUMBER() ....
RANKを使用する場合は、OVER(Order by)が必要です。回答ありがとうございます。 rptlrテーブルはWebにレプリケートされ、そのデータは履歴の参照として使用されます。したがって、Select *を使用してテーブル内のすべてのフィールドを取得します。 –