积极答复者
一个存储过程,怎么将由程序语言动态生成的字符串id列表传入?

问题
-
例如这个语句
select * from t_table where tID in('8aff1d2ee3c8473484ba11b4000684b6','cbeefdbf9081466d86d8ee29e5de83aa','a83a3dbff2094bda814b6bfa892d5633')
我要把这个语句写成存储过程,其中的in里的参数,由外部传入动态的id列表,是大量的数字id的话,我能找到方法解决.但如果是大量的字符串id,例如GUID之类的字符串id.要怎么传入存储过程,?.最好不是在编程语言中拼接sql语句.
- 已编辑 便携式家园 2017年12月21日 11:51
答案
-
变通参数的传入方法,原来是要传入N个参数,参数个数不确定,现在改为传入一个参数,参数值用分隔符号隔开,在SQL语句中再把它解析为N个参数值。
方案A
procedure Proc(@a nvarchar(1), @b nvarchar(10),@c nvarchar(10).....
转化为方案B
procedure Proc(@abc nvarchar(10))
在SQL语句中,将参数abc解析为N个参数值。
专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
- 已标记为答案 便携式家园 2017年12月22日 3:25
全部回复
-
变通参数的传入方法,原来是要传入N个参数,参数个数不确定,现在改为传入一个参数,参数值用分隔符号隔开,在SQL语句中再把它解析为N个参数值。
方案A
procedure Proc(@a nvarchar(1), @b nvarchar(10),@c nvarchar(10).....
转化为方案B
procedure Proc(@abc nvarchar(10))
在SQL语句中,将参数abc解析为N个参数值。
专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
- 已标记为答案 便携式家园 2017年12月22日 3:25