CREATE PROC usp_AddRowsToMyTable @MyTableParam MyType READONLY,
@UserID varchar(20) AS

INSERT INTO MyTable([col1],[col2],[col3],[UserID])
SELECT [col1],[col2],[col3],@UserID
FROM @MyTableParam

GO 
就是这个表值类型,在.net clr中如何写?

解决方案 »

  1.   

    你想用clr 写什么?
    写一个表值类型类型吗?还用写一个clr的sp
      

  2.   

    clr的存储过程,用.net创建一个数据库的项目,然后写存储过程,然后部署,便于管理。现在就是想用到一个自定义的表值参数作为输入参数,
    不知道如何在.net中引用这个参数,我是指.net在创建这个存储过程的时候如何注入这个输入的参数是表值类型。
      

  3.   

    net 可以直接调用存储过程
    参考http://www.cnblogs.com/clhed/articles/1269415.html
      

  4.   

    Imports System
    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Data.SqlTypes
    Imports Microsoft.SqlServer.Server
    Partial Public Class stored_系统启动
        <Microsoft.SqlServer.Server.SqlProcedure()> _
        Public Shared Sub 系统启动_读取单位列表(xx as yy) ' 快速选择自定义部门
            Dim cn As New SqlConnection
            cn.ConnectionString = "context connection=true"
            Dim cmd As New SqlCommand()
            cmd = cn.CreateCommand
            cmd.CommandText = "select * from 系统数据_机构信息 order by 机构代码 DESC"
            cn.Open()
            SqlContext.Pipe.ExecuteAndSend(cmd)
            cn.Close()
        End Sub
    end class不是.net 怎样调用存储过程,而是.net怎样创建存储过程。比如上面的例子,就是创建一个clr的存储过程,现在的问题是参数xx as yy 如何定义成自定义表值参数。如果直接在sql server中创建存储过程,是没有问题的,就在就是不知道怎样在.net中创建。
      

  5.   

    你要搞清楚你现在是想解决传值问题,而不是处理上的问题
    搞clr sp 本来就是错误的想法。