0

これについて同様の投稿を見たことがありますが、正確な問題と答えは見つかりませんでした。私がやろうとしているのは、変数からのデータと選択ステートメントからのデータでテーブルを更新することです。

例えば:

--THESE ARE THE VARIABLES I WANT TO USE IN INSERT

DECLARE @Key uniqueidentifier
DECLARE @Name varchar(200)

SET @Key = NEWID()
SET @Name = 'TestName'

--THIS IS A TEMP TABLE THAT I WANT TO SELECT FROM AND USE THE DATA FROM THERE AND    INSERT
SELECT * FROM #TempData AS td

--THE INSERT STATEMENT
INSERT INTO MyTable(CustomerKey, Name, City, State)
VALUES(@Key, @Name, td.City, td.State)

SELECTステートメントでは、次のような列名に変数を使用します。

SELECT @City = City, @State = State FROM #TempData

しかし、唯一の問題、またはやや厄介なのは、実際の一時テーブルには簡単に 40 列あることです。40以上の変数を宣言して各列に割り当てたくありません。

これをどのように行うことができるかについて何か考えはありますか?

4

1 に答える 1

3

単純にやってみたらどうだろう..

INSERT INTO MyTable(CustomerKey, Name, City, State)
SELECT @Key, @Name, City, State FROM #TempData
WHERE ....

基本的に、TempData の任意の数の列に対してこれをスケールアウトでき、変数を宣言する必要はありません。

于 2013-04-13T03:44:48.447 に答える