[SQL] C #을 GUID 및 SQL의 고유 식별자
SQLC #을 GUID 및 SQL의 고유 식별자
나는 GUID를 생성하고 DB에 저장하고 싶습니다.
C #에서 GUID가 Guid.NewGuid를 사용하여 생성 될 수있다 (). 이것은 128 비트 정수를 생성합니다. SQL Server는 거대한 16 진수를 유지하는 고유 식별자 열이 있습니다.
C # 및 SQL 서버의 GUID가 함께 잘 작동 할 수있는 좋은 / 선호하는 방법이 있습니까? (즉 NVARCHAR 또는 다른 필드를 사용하여 데이터베이스에 저장 한 후 Guid.New () 등을 사용하여 GUID를 생성 ... 또는 SQL 서버는 어떤 다른 수단에 의해 기대되는 형태의 일부 16 진수 작성)
해결법
-
==============================
1.SQL 문자열로 GUID를 기대하고있다. 는 C #에서 다음 SQL을 기대 문자열을 반환합니다.
SQL 문자열로 GUID를 기대하고있다. 는 C #에서 다음 SQL을 기대 문자열을 반환합니다.
"'" + Guid.NewGuid().ToString() + "'"
같은 뭔가
INSERT INTO TABLE (GuidID) VALUE ('4b5e95a7-745a-462f-ae53-709a8583700a')
이 SQL처럼 보일 것입니다 것입니다.
-
==============================
2.다음은 매개 변수화 쿼리를 사용하여 GUID를 삽입하는 방법을 보여주는 코드입니다 :
다음은 매개 변수화 쿼리를 사용하여 GUID를 삽입하는 방법을 보여주는 코드입니다 :
using(SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using(SqlTransaction trans = conn.BeginTransaction()) using (SqlCommand cmd = conn.CreateCommand()) { cmd.Transaction = trans; cmd.CommandText = @"INSERT INTO [MYTABLE] ([GuidValue]) VALUE @guidValue;"; cmd.Parameters.AddWithValue("@guidValue", Guid.NewGuid()); cmd.ExecuteNonQuery(); trans.Commit(); } }
-
==============================
3.당신은 SqlDbType.UniqueIdentifier을 지정하여 저장 프로 시저 SQL에 직접 C # GUID 값을 전달할 수 있습니다.
당신은 SqlDbType.UniqueIdentifier을 지정하여 저장 프로 시저 SQL에 직접 C # GUID 값을 전달할 수 있습니다.
다음과 같이 보일 수 있습니다 귀하의 방법 (유일한 매개 변수는 GUID입니다 것을 제공)
public static void StoreGuid(Guid guid) { using (var cnx = new SqlConnection("YourDataBaseConnectionString")) using (var cmd = new SqlCommand { Connection = cnx, CommandType = CommandType.StoredProcedure, CommandText = "StoreGuid", Parameters = { new SqlParameter { ParameterName = "@guid", SqlDbType = SqlDbType.UniqueIdentifier, // right here Value = guid } } }) { cnx.Open(); cmd.ExecuteNonQuery(); } }
참조 : SQL 서버의 고유 식별자
-
==============================
4.고유 식별자의 데이터 유형 필드에 데이터베이스에 저장합니다.
고유 식별자의 데이터 유형 필드에 데이터베이스에 저장합니다.
-
==============================
5.
// Create Instance of Connection and Command Object SqlConnection myConnection = new SqlConnection(GentEFONRFFConnection); myConnection.Open(); SqlCommand myCommand = new SqlCommand("your Procedure Name", myConnection); myCommand.CommandType = CommandType.StoredProcedure; myCommand.Parameters.Add("@orgid", SqlDbType.UniqueIdentifier).Value = orgid; myCommand.Parameters.Add("@statid", SqlDbType.UniqueIdentifier).Value = statid; myCommand.Parameters.Add("@read", SqlDbType.Bit).Value = read; myCommand.Parameters.Add("@write", SqlDbType.Bit).Value = write; // Mark the Command as a SPROC myCommand.ExecuteNonQuery(); myCommand.Dispose(); myConnection.Close();
from https://stackoverflow.com/questions/1435908/c-sharp-guid-and-sql-uniqueidentifier by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 연루되는 테이블에서 선택하는 단일 쿼리에서 여러 테이블에 INSERT 행 (0) | 2020.04.19 |
---|---|
[SQL] 두 개의 열을 결합하여 하나 개의 새로운 컬럼에 추가 (0) | 2020.04.19 |
[SQL] 트랜잭션 내에서 "GO"를 사용하여 (0) | 2020.04.19 |
[SQL] SQL Server의 문자열을 varbinary (0) | 2020.04.19 |
[SQL] 어떻게 Linq에 SQL로 표현에서 SQL GETDATE ()와 DATEADD ()를 사용합니까? (0) | 2020.04.19 |