Visual Studio 2008에서 입력 값으로 테이블 반환 UDT 매개 변수를 사용하는 SQL 저장 프로 시저를 실행하려고합니다. Visual Studio 2008에서이 매개 변수를 추가했지만이 프로그램을 실행하면 "ArgumentException - 지정된 형식이 대상 서버에 등록되지 않았습니다."라는 메시지가 나타납니다. 그래서 나는이 문제를 탐색하고 Visual Studio 2008에서 SQL Server 2008에서이 테이블 형식의 속성과 일치하는 새 클래스를 만들어야한다고 생각합니다. UDT 's와 관련된 인터넷에서 예제를 찾을 수 없습니다. 그리고 모든 스칼라 UDT 예제를 시도했지만 테이블 기반으로 만들기 위해이를 수정하는 방법을 모르고있었습니다.
SQL Server 2008로 형식을 가져 오는 경우에만 필요하거나 Visual Studio로 형식을 가져 오는데도 사용할 수 있는지 여부는 알 수 없지만 어셈블리를 만들어야 할 수도 있습니다. BTW, VS 2008에서 서버 탐색기에서 나열된 모든 유형을 볼 수 있지만 데이터베이스 및 해당 SP 참조하십시오. 데이터베이스 새로 고침을 시도했지만 형식이 여전히 표시되지 않았습니다. 내가해야 할 일은 간단합니다. 나는 테이블 UDT과 같이 있습니다sql table udt, vs 2008, csharp
CREATE TYPE [dbo].[parseInputFile] AS TABLE(
[NumCols] [int] IDENTITY(1,1) NOT NULL,
[strRow] [varchar](500) NOT NULL,
PRIMARY KEY CLUSTERED
그리고 내 C# 코드에서 코드는 다음과 같습니다
public static int AppendData(string[] myStringArray)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "dbo.uspAppendTableFromInput";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn;
SqlParameter param = cmd.Parameters.Add("@InputFileParam", SqlDbType.Udt);
param.UdtTypeName = "AdventureWorks.dbo.parseInputFile";
param.Value = myStringArray;
conn.Open();
RowsAffected = cmd.ExecuteNonQuery();
이 프로그램을 실행 한 후 영향을받는 영 행을 보여 RowsAffected. 내가 뭘 놓치고 있니? 이 간단한 예를 보여주는 웹 사이트를 가리킬 수 있습니까? 아니면 팁을 주시겠습니까? 나는 또한 시도했다 'param.UdtTypeName = "parseInputFile";' 위의 스 니펫에 대해서는이 오류가 반환되었습니다. BTW, "myStringArray"본질적으로 테이블입니다. 일련의 문자열입니다. 예 : myStringArray [0] = "Hello | Bob | How | Do", myStringArray [1] = "I | Am | Fine | And"등
예 @ http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause/337864#337864 – ahains
무엇합니까처럼 저장된 프로 시저 모양? 대체로 선언 한 매개 변수의 목록 –
정확히 무엇을 달성하려고합니까? 사용자 정의 테이블 형식의 매개 변수 집합을 사용하여 저장된 proc을 호출 하시겠습니까? 또는 저장된 proc을 호출하여 테이블을 반환합니다. 확실히 명확하지 않다 ... –