当我执行下面的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发布于 2013-06-21 03:25:15
正如其他人所提到的,问题在于它不是一个表变量,不确定您要做什么,但也许您的意思是插入值?:
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-21 03:23:09
这是因为@ID不是一个表;它是一个标量值,一个唯一标识符。不能在FROM子句中使用标量值。
发布于 2013-06-21 03:25:11
为了声明一个表变量,你必须像声明一个表一样声明它。
如下所示:
DECLARE @ProductTotals TABLE
(
Field1 <type>,
Field2 <type>
)https://stackoverflow.com/questions/17222050
复制相似问题