我试图在插入查询中执行标量值函数。我正在使用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);
当我执行时,它将参数值作为字符串..函数永远不会被执行。你能告诉我这里我做错了什么吗?
答案 0 :(得分:0)
为您的功能使用select语句
SELECT [dbo].[getProdCodeById] (@id)
您可以在使用前将其指定给变量,如
DECLARE @parameter varchar(15)
SET @parameter = (SELECT [dbo].[getProdCodeById] (@id))
您现在可以在代码中的任何位置使用@parameter