我有一个在SQL Server 2008上运行的存储过程,它返回所有过程及其参数的列表:
procedure [dbo].[p_ListProcedures]
as
select
sp.name as 'Procedure',
p.name as 'Parameter',
t.name as 'Type',
p.is_output as 'Output',
dbo.GetParamDefault(p.name, object_definition(sp.object_id)) as 'Value'
from sys.procedures sp
left join sys.parameters p
on p.object_id=sp.object_id
left join sys.types t
on t.user_type_id=p.user_type_id
where sp.name like 'p_%'
order by sp.name
此过程在两个不同的数据库上运行,用于为我们生成一些ADO.NET代码。它在一个数据库上运行正常,但在另一个数据库上,最后一列Value
总是返回第一行的值(似乎是)。
对于此输出:
通过SqlDataReader(reader["Value"]
)读取最后一列的值将始终返回null,因为它应该重新调整' test'对于第5行和第6行。
我将两个数据库复制到本地SQL Server Express 2012安装,该工具运行正常。因此,远程服务器上的一个数据库有一些特点,我无法弄清楚。
关于可能导致这种情况发生的任何想法?