我想将一些列表插入带有一些附加参数的SQL服务器表中。像这样的东西
CREATE PROCEDURE SP_AddChosenSecurities
@ProjectID INT,
@Securities BusinessValuationSecurityTblType READONLY
AS
BEGIN
INSERT INTO TblBusinessValuationsSecurities @ProjectID, @Securities
END
BusinessValuationSecurityTblType
是表类型参数
我该怎么办呢。
谢谢!
答案 0 :(得分:3)
由于您的第二个参数是表值参数,因此您需要从中选择,例如来自常规表 - 如下所示:
CREATE PROCEDURE SP_AddChosenSecurities
@ProjectID INT,
@Securities BusinessValuationSecurityTblType READONLY
AS
BEGIN
INSERT INTO TblBusinessValuationsSecurities
SELECT @ProjectID, Col1, Col2, Col3
FROM @Securities
END
这假设您在表值参数中有Col1, Col2, Col3
,根据需要进行调整。
附注:您应该 从不 为您的存储过程使用sp_
前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实在将来的某个时候冒着名字冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免使用sp_
并使用其他东西作为前缀 - 或者根本不使用前缀!