在函数(SQL Server)中执行动态sql时出错?
发布时间:2021-01-26 19:29 所属栏目:[水果奶奶论坛] 来源:网络整理
导读:我创建一个函数来执行动态SQL并返回一个值.我得到“只有函数和一些扩展存储过程可以在函数内执行.”作为一个错误. 功能: Create Function fn_GetPrePopValue(@paramterValue nvarchar(100))returns int asbegindeclare @value nvarchar(500);Set @SQLString
我创建一个函数来执行动态SQL并返回一个值.我得到“只有函数和一些扩展存储过程可以在函数内执行.”作为一个错误. 功能: Create Function fn_GetPrePopValue(@paramterValue nvarchar(100)) returns int as begin declare @value nvarchar(500); Set @SQLString = 'Select Grant_Nr From Grant_Master where grant_id=' + @paramterValue exec sp_executesql @query = @SQLString,@value = @value output return @value end 执行: Select dbo.fn_GetPrePopValue('10002618') from Questions Where QuestionID=114 和: Select fn_GetPrePopValue('10002618') from Questions Where QuestionID=114 功能是正确调用还是函数不正确? 解决方法您不能使用函数中的动态SQL,也不能调用存储过程. Create proc GetPrePopValue(@paramterValue nvarchar(100)) as begin declare @value nvarchar(500),@SQLString nvarchar(4000) Set @SQLString = 'Select @value = Grant_Nr From Grant_Master where grant_id = @paramterValue' exec sp_executesql @SQLString,N'@paramterValue nvarchar(100)',@paramterValue,@value = @value output return @value end 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
网友评论
推荐文章
-
我想做的就是从此函数获取名字的结果,但是感觉太多的...[详细]
-
如何使用CASE WHEN在MySQL和PDO中运行更新查询. 以下...[详细]
-
我正在尝试使用hadoop和hive创建一个docker容器.这是...[详细]
-
本篇章节讲解PHP实现的简单在线计算器功能。供大家参...[详细]
-
我有一个2列的表farmer_crops,用于存储农民与其种植的...[详细]
-
我最近开始研究MySQL,虽然我已经阅读了一些有关数据库...[详细]
-
在我的MS SQL 2008 R2数据库中,我有这个表: TABLE [H...[详细]
-
我从这里生成一个视图: create or replace view date...[详细]
-
sql – LEFT JOIN(OUTER JOIN)与INNER JOIN的条件
SELECT A.COL1,B.COL1,C.COL1FROM TABLEA ALEFT JOIN ...[详细]
-
本篇章节讲解CI框架(CodeIgniter)公共模型类定义与用...[详细]
热点阅读