0

以下の SQL を実行すると、「テーブル変数 "@ID" を宣言する必要があります」というエラーが表示されます。しかし、私はそれを宣言しているので、何が悪いのですか?

DECLARE @ID uniqueidentifier
SET @ID = NEWID()

SELECT pcx_vacancyassociationId
INTO      pcx_vacancyassociationBase 
FROM @ID

SELECT pcx_candidate_to_pcx_vacancyId, .pcx_candidateid, pcx_vacancyid

INTO  pcx_vacancyassociationExtensionBase
FROM @ID,  pcx_candidate_to_pcx_vacancyBase.pcx_candidateid, pcx_candidate_to_pcx_vacancyBase.pcx_vacancyid
4

3 に答える 3

2

他の人が言ったように、問題はテーブル変数ではないということです。何をしようとしているのかわかりませんが、おそらく値を挿入するつもりですか?:

INSERT INTO pcx_vacancyassociationBase  (pcx_vacancyassociationId)
VALUES (@ID)

どのフィールドが必要かは完全にはわかりませんが、SELECT INTO を実行できます。

SELECT @ID as 'pcx_vacancyassociationId', pcx_candidate_to_pcx_vacancyId, pcx_candidateid, pcx_vacancyid
INTO  pcx_vacancyassociationExtensionBase
FROM Table

または挿入:

INSERT INTO pcx_vacancyassociationBase  
    SELECT @ID as 'pcx_vacancyassociationId', pcx_candidate_to_pcx_vacancyId, pcx_candidateid, pcx_vacancyid
    INTO  pcx_vacancyassociationExtensionBase
    FROM Table

両方のバージョンで、@ID はすべての行で同じになります。すべての行にランダムな値が必要な場合は、変数を使用せず、SELECT 句で NEWID() を使用してください。

于 2013-06-20T19:25:15.137 に答える
1

@ID はテーブルではないためです。これはスカラー値であり、uniqueidentifier です。FROM 句ではスカラー値を使用できません。

于 2013-06-20T19:23:08.727 に答える
0

テーブル変数を宣言するには、実際にテーブルのように宣言する必要があります。

そのようです:

DECLARE @ProductTotals TABLE 
(
  Field1 <type>, 
  Field2 <type>
)
于 2013-06-20T19:25:11.283 に答える