如何通过存储在其他变量中的名称访问参数 [英] how to access parameters via names stored in other variables

查看:149
本文介绍了如何通过存储在其他变量中的名称访问参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我有一个字符串列表(带前缀"@"),与我的procedures参数的列表相同.

因此,当我尝试从该列表访问字符串时,它给我该参数的名称而不是参数值.

我的SP在这里
----
创建过程MYSP(@Fname varchar(max),@ Lname varchar(max))
AS
开始
DECLARE @ParamList作为光标
宣告@ParamName AS varchar(100)
SET @ParamList =从dbo.GetParameterList(''Function'')中选择pParameter的光标
//函数返回字符串列表,这些字符串是参数列表@ Fname,@ Lname

打开@ParamList
从@ParamList下一步获取INTO @ParamName
@@ FETCH_STATUS = 0
开始
Print @ParamName//我想打印参数@Fname的值,而不是"@Fname"
从@ParamList下一步获取INTO @ParamName
END

CLOSE @ParamList
释放@paramList
END

那我该怎么办呢?
谢谢.

Hi,

I have a list of string (with prefix ''@'') which are the same as my procedures parameter''s list.

So when I am trying to access a string from this list, its give me the name of that parameter and not parameter value.

My SP is here
----
CREATE PROCEDURE MYSP(@Fname varchar(max),@Lname varchar(max))
AS
BEGIN
DECLARE @ParamList AS CURSOR
DECLARE @ParamName AS varchar(100)
SET @ParamList = CURSOR FOR SELECT pParameter FROM dbo.GetParameterList(''Function'')
//Function returns list of string which are parameter list @Fname,@Lname

OPEN @ParamList
FETCH NEXT FROM @ParamList INTO @ParamName
WHILE @@FETCH_STATUS = 0
BEGIN
Print @ParamName // I would like to print the value of parameter @Fname and not ''@Fname''
FETCH NEXT FROM @ParamList INTO @ParamName
END

CLOSE @ParamList
DEALLOCATE @paramList
END

So how could I do this?
Thank you.

推荐答案

SQL不支持通过存储在其他变量中的名称访问参数.
您可以使用 sp_executesql [
SQL does not support accessing parameters via names stored in other variables.
What you may do is dynamic SQL using sp_executesql[^]...


这篇关于如何通过存储在其他变量中的名称访问参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆