2010-07-30 5 views
9

내가해야 할 일은 SET IDENTITY_INSERT dbo.myTable ON 문을 가지고 있는데, 위의 문을 C# 응용 프로그램에서 사용하는 구문은 무엇입니까?넣는 방법 SET IDENTITY_INSERT dbo.myTable ON 문

+2

"가 아니라 진짜 문제"로이 표시 누구든 : 당신은 기본적으로 같은 방법으로 호출 것 /library/ms188059.aspx). –

+0

@OMG 포니 - 나는 왜 누군가가 "진짜 질문이 아니 었는지"궁금해했다. -/ – Rob

답변

19

그냥 SQL의 다른 비트와 동일합니다 :

using (var connection = new SqlConnection("Connection String here")) 
{ 
    connection.Open(); 
    var query = "SET IDENTITY_INSERT dbo.MyTable ON; INSERT INTO dbo.MyTable (IdentityColumn) VALUES (@identityColumnValue); SET IDENTITY_INSERT dbo.MyTable OFF;"; 
    using (var command = new SqlCommand(query, connection) 
    { 
     command.Parameters.AddWithValue("@identityColumnValue", 3); 
     command.ExecuteNonQuery(); 
    } 
} 
+0

"사용"라인의 끝에는 오른쪽 괄호가 누락되어있다. –

3

글쎄, 그것은 SqlCommand 인스턴스의 일부 경우에, 당신은 단지 그것이 텍스트에 추가 :

using(SqlConnection myConnection = new SqlConnection(connString)) 
{ 
    SqlCommand cmd = new SqlCommand(); 
    cmd.CommandText = "SET IDENTITY_INSERT dbo.MyTable ON"; 
    cmd.CommandText += //set the rest of your command here. 
} 

나는 질문 그러나 이것의 필요성. 코드를 사용하는 빈도가 충분한 테이블에 ID를 삽입하는 경우 삽입을 수행하려면 저장 프로 시저를 사용하는 것이 좋습니다. - [설정의 IDENTITY_INSERT]을 읽어 보시기 바랍니다 (http://msdn.microsoft.com/en-us

using(SqlConnection myConnectino = new SqlConnection(connString)) 
{ 
    SqlCommand cmd = new SqlCommand(); 
    cmd.CommandText = "usp_insert_record_into_my_table [ParamList]"; 
    cmd.CommandType = SqlCommandType.StoredProcedure; 
} 
+3

Aaaaaargh, "usp_"가 붙은 저장 프로 시저, 내 눈, 내 눈, 그것 burrrrrns! ;) – Rob

+0

@Rob - 그래, 나도 알아, 옛 대회. 나는 그것을 (경영진 내에서) 찾기가 더 쉽기 때문에 실제로 좋아한다. 다른 용도로 사용되지 않습니다. 네가 원한다면 내가 바꿀 수있을 것 같아. 너만을 위해서. : P – AllenG

+2

Meh - "sp_"가 아닌 한 http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/don-t-start-your-procedures-with-sp_를 참조하십시오. –

관련 문제