【发布时间】:2017-01-01 03:42:26
【问题描述】:
我有这些表:
我有一个像cat1,cat2,cat3,cat4 这样的数组,它想要传递给sql server 存储过程。
然后检查它们是否存在于PaperKeywors 的表中。
如果是,则将主题的PKeyID 和PID(例如PID=1)插入PaperTag,如果没有则返回它们。
我知道我必须使用 TVP,并在 sql 中编写了这些代码:
CREATE TYPE PaperKeywordsType AS TABLE
( PKeyword nvarchar(200) ,PKeyID int )
还有:
Create PROCEDURE [dbo].[InsertPaperTag]
(@dt AS PaperKeywordsType READONLY , @PID int)
AS
BEGIN
SET NOCOUNT ON;
INSERT dbo.PaperTags(PID,PKeyID)
SELECT @PID,PaperKeywords.PKeyID FROM @dt tvp
inner join PaperKeywords on PaperKeywords.PKeyword = tvp.PKeyword
END
但这对我不起作用。为什么?
【问题讨论】:
标签: c# sql-server-2008 tsql