0

テーブルにフィールドを追加しようとしています。テーブルを作成してからspを呼び出し、sp内にフィールドを追加するとします。where句でフィールドを使用できません

  1. パート 1 とパート 2 を一緒に実行: エラーなし
  2. パート 1 を実行してからパート 2 を sp: エラー内で実行します (完了したら #table を削除することを忘れないでください)
  3. パート 1 を実行してからパート 2 を実行: エラー (完了したら #table を削除することを忘れないでください)

例:

/*PART 1*/
select 1 as number
into #table
union all 
select 2 as number
/*******/

/*PART 2*/
ALTER TABLE #table ADD rowNo INT IDENTITY(1,1);

select * from #table
where rowNo between 0 and 10

drop table #table
/********/

これが、ストアド プロシージャで実行するという意味です (SQL フィドルの新機能)。

http://sqlfiddle.com/#!3/545ff/1

4

1 に答える 1

0

コードのコンパイル中にエラーがスローされたようです。exec() コマンド内で select (または新しい列を直接参照するその他のクエリ) を実行すると、次のように動作します。

http://sqlfiddle.com/#!3/76b8c/1

于 2013-05-03T18:23:12.317 に答える