게시판 |
상위분류 : 잡필방 | 중위분류 : 서류가방 | 하위분류 : 전산과 컴퓨터 |
작성자 : 문시형 | 작성일 : 2016-08-27 | 조회수 : 3,971 |
?작업을 하다보면 Insert를 하고 적용된 고유의 값을 받아 하위 테이블 FK(Foreign Key)로 사용 할 때가 있다
위와 같은 작업시 Insert후 Select를 날리는 것보다 아래와 같이 Identity 값을 받아서 사용 하는 것이 더 좋은 거 같다고 생각된다
?
핵샘 코드 : 1. insert into table이름(컬럼) Values (값); SELECT CAST(scope_identity() AS int)";
2. ?newProdID = (Int32)cmd.ExecuteScalar();
?
전체 예제(출처 mdns?) :
static public int AddProductCategory(string newName, string connString)
{
Int32 newProdID = 0;
string sql =
"INSERT INTO Production.ProductCategory (Name) VALUES (@Name); "
+ "SELECT CAST(scope_identity() AS int)";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@Name", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = newName;
try
{
conn.Open();
newProdID = (Int32)cmd.ExecuteScalar();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return (int)newProdID;
}
| | 목록으로