2016-05-18 149 views
1

我有一个场景,我已经创建了一个函数返回一个表变量。我想在插入语句中使用这个表变量。以下是查询功能插入语句在SQL Server中

INSERT INTO DNVPCDCS..d_CMRequest  
    (PRIORITY, RETRIES,ACTIONCD,FILENAME,TAXONOMY,NOTES,GUID,TOKEN,STATUS,ISDBUSER)  
    VALUES  
    @PRIORITY,0,'INS',@FILENAME,[dbo].[udf_GetTaxonomy](@IMAGEID,@HISTORYNO,@NEW_GUID),@NOTES,@NEW_GUID,@TOKEN,'N',NULL 

我不确定语法,并且在这个上得到错误。

+0

这是错误的,我什至不能看到你想要做什么。 –

+0

一个错误是没有围绕您的值的括号 – Dustin

+0

为什么要尝试将表值函数调用插入表格单元?你的函数返回什么? –

回答

2

您可以使用INSERT ... SELECT语法是这样的:

INSERT INTO DNVPCDCS..d_CMRequest(PRIORITY, RETRIES,ACTIONCD,FILENAME,TAXONOMY,NOTES,GUID,TOKEN,STATUS,ISDBUSER) 
SELECT @PRIORITY,0,'INS',@FILENAME, ... 
    FROM [dbo].[udf_GetTaxonomy](@IMAGEID,@HISTORYNO,@NEW_GUID) t 

“......”代替列名单,因为我不知道是什么行乘udf_GetTaxonomy返回。

查看INSERT (Transact-SQL)了解更多详情。

0

用SELECT替换VALUES,同样的工作。您的代码将是:

INSERT INTO DNVPCDCS..d_CMRequest  
(PRIORITY, RETRIES, ACTIONCD, FILENAME, TAXONOMY, NOTES, [GUID], TOKEN, [STATUS], ISDBUSER)  
SELECT  
@PRIORITY, 0, 'INS', @FILENAME, [dbo].[udf_GetTaxonomy](@IMAGEID, @HISTORYNO, @NEW_GUID), @NOTES, @NEW_GUID, @TOKEN, 'N', NULL