SQL Serverを使用しているストアドプロシージャにSELECTクエリの結果を格納する方法はありますか?複数の値をSELECTからSQL Serverに格納する方法はありますか?
以下の例では、選択クエリから「1」と「2」の両方を保存したいと考えています。
例:
DECLARE @Values ???
SET @Values = (SELECT one, two FROM dummyTable)
SQL Serverを使用しているストアドプロシージャにSELECTクエリの結果を格納する方法はありますか?複数の値をSELECTからSQL Serverに格納する方法はありますか?
以下の例では、選択クエリから「1」と「2」の両方を保存したいと考えています。
例:
DECLARE @Values ???
SET @Values = (SELECT one, two FROM dummyTable)
SELECT @Value1 = One, @Value2 = two FROM dummyTable;
SQL Serverには配列がありません。
これは非常に便利なテクニックです – chobo
あなたは、このためにテーブル変数を使用することができます。他の変数と同様に
DECLARE @Table TABLE (one varchar(100), two varchar(100)
INSERT INTO @TABLE
SELECT one, two from dummytable
が、これはPROCの範囲外からアクセスできなくなります。
オプティマイザは常に実行計画に対して単一の行を想定しているため、多数の行には適していません。
クエリは、単一の行を返す場合:
DECLARE @v1 int -- or whatever
DECLARE @v2 int
SELECT @v1 = one, @v2 = two
FROM dummyTable
WHERE id = 1
クエリが複数の行を返す場合、あなたはテーブル変数を宣言することを避けるためにSELECT INTO
を使用することができます。
SELECT one, two
FROM dummyTable
INTO #temp
SELECT * FROM #temp
DROP TABLE #temp
あなたがつかむことを望みます単一の行または複数の行からの複数の値? –
派生テーブル? http://www.4guysfromrolla.com/webtech/112098-1.shtml – Tim