将表值参数中的值插入数据库表

时间:2014-04-03 09:13:02

标签: sql-server-2008 table-valued-parameters

如何将表值参数中的值插入表

因为它现在不起作用。

这是最好的方法吗?

ALTER PROCEDURE [dbo].[SaveDomainObject]
@Fields dbo.TemplateFieldsAsSqlParameter READONLY

AS
BEGIN
INSERT INTO DomainObjectFields
    VALUES (@UniqueKeyDomainObjectField, @Fields.FieldName, @Fields.FieldValue,@DateCreated, @DateUpdated, @Fields.AllowDuplicates)     

 END

编译器告诉我,我需要对标量变量@Fields进行daclere。

我该怎么做?

亲切的问候

1 个答案:

答案 0 :(得分:1)

您应该将表值参数视为一个表,因此您只需通过表值参数中的SELECTING插入表中。 如果您有其他不在TVP中的字段,只需像往常一样将它们添加到SELECT中。

INSERT INTO DomainObjectFields(column list)
SELECT (column list) 
FROM TableFieldsAsSQLParameter