私は初心者の質問があります。初心者:whileループの外で "With"を使用していますか?
declare @RowNr int = 1
declare @CA int = 0
While @RowNr <= 1000
BEGIN
With CCWithRow AS
(
SELECT CA ,ROW_NUMBER() OVER (order by CA) as RowNr
FROM myCATable
)
SELECT @CA = CA, @RowNr = RowNr
FROM CCWithRow
WHERE RowNr = @RowNr
Set @RowNr += 1
--Doing something with @CA here
END
このコードではありません:
これは動作するコードの一部です
declare @RowNr int = 1
declare @CA int = 0
With CCWithRow AS
(
SELECT CA ,ROW_NUMBER() OVER (order by CA) as RowNr
FROM myCATable
)
While @RowNr <= 1000
BEGIN
SELECT @CA = CA, @RowNr = RowNr
FROM CCWithRow
WHERE RowNr = @RowNr
Set @RowNr += 1
--Doing something with @CA here
END
質問:なぜ私はループ内WITH「を定義」しなければなりませんの?
私は元の問題を解決するためのより良い方法があることを知っていますので、それは問題ではありません。ちょうど知りたい、なぜ私はループの外側にWITHを定義して内部で使用することができないのですか?
ありがとうございました、「オブジェクトではありません」とは私が理解していることです。マーティンをもっと速く選んでいます。 ;) – Feroc