如何捕获ServerA的Sp的存储过程参数集以更新ServerB

时间:2011-06-01 15:06:14

标签: smo

VS2010 我正在阅读任何现有的参数,我想将它们加载到一个 ByRef params As StoredProcedureParameterCollection供以后使用。

当代码运行时,我得到一个null异常错误,我不明白为什么? p具有用于param的值,param具有params的值。

For Each p As StoredProcedureParameter In spF.Parameters
    Dim param As StoredProcedureParameter = New StoredProcedureParameter(spF, p.Name, p.DataType)

    params.Add(Add(param, cnt))  '  << Get a null exception here??
    cnt = cnt + 1
Next

其他人这样做了吗?请不要说买红门。很久以前,那扇门撞在了我的手指上。 :(

1 个答案:

答案 0 :(得分:0)

要从From服务器获取params并将其传递给To服务器,您需要创建一个独立的paramsCollection

Dim paramsF as StoredProcedureParameterCollection

spF是From db。

的加载sp

paramsF = spF.Parameters'没什么新鲜的,只需将它完全复制即可!

在使用数据库,脚本以及参数构建spT的层时:

        For Each p As StoredProcedureParameter In paramsF
            Dim pp As StoredProcedureParameter
            pp = New StoredProcedureParameter(spT, p.Name, p.DataType)
            spT.Parameters.Add(pp)
        Next