SqlParameter在Insert Query中调用用户定义的函数

时间:2012-09-05 05:18:09

标签: sql-parametrized-query

我试图在插入查询中执行标量值函数。我正在使用sql参数集合,但仍坚持使用它。

查询

Insert into PackageProducts values (@id, @name, @prodId, @prodCode)

//我想调用一个标量值函数来获取@prodCode的值,当这个查询完成时

功能

create function getProdCodeById(@id uniqueidentifier) returns varchar(15)
begin
declare @code varchar(15)
select @code=ProductCode from Products where ID=@id
return @code
end

我正在尝试做什么

//create command, connection etc.. after than

DbParameter param = createParameter() ; // returns an empty parameter
param.Name = "@prodCode";
param.Value = String.Format("getProdCodeById('{0}')", 5);

当我执行时,它将参数值作为字符串..函数永远不会被执行。你能告诉我这里我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

为您的功能使用select语句

SELECT [dbo].[getProdCodeById] (@id)

您可以在使用前将其指定给变量,如

DECLARE @parameter varchar(15)
SET @parameter  = (SELECT [dbo].[getProdCodeById] (@id))

您现在可以在代码中的任何位置使用@parameter