2009-05-24 4 views
4

sqlcommand.Parameters.Add (...) 함수에는 여러 오버로드가 있습니다. 그들 중 일부는 크기를 가지지 않으며, 일부는 크기를 가지지 않습니다. 기본적으로 어떤 크기가 설정됩니까? 매개 변수 크기를 설정하지 않는 것이 안전합니까? 성능에 영향을 줍니까?ADO.NET에서 SQL 매개 변수의 기본 크기

답변

4

명시 적으로 설정되지 않으면

DOCO SqlParameter.Size Property에서, 크기가 지정된 파라미터 값의 실제 크기로부터 추정된다.

이 실제로 무엇을 의미하는지 자세한 내용을 설명 293315에 피터은 wOne로 굉장한 응답이있다

+0

감사합니다. 당신이 제공 한 링크는 매우 유용했습니다. – Roma

+0

걱정할 필요가 없습니다. 나는 한두 가지 베드로의 설명을 배웠으므로 질문을하기 위해 * 당신 *에게 감사해야합니다 :-) –

1

그것은 SQL Server에 대한 .NET 코드에서 데이터베이스 데이터 유형에 대한 너무 큰 매개 변수를 보낼 수 있습니다. .Net 코드에서 매개 변수를 생성 할 때 크기를 설정하면 값이 너무 큰 경우 예외가 발생합니다. 따라서 더 빨리 알게되고 데이터베이스 호출을 낭비하지 않게됩니다.

또는 특정 텍스트 필드에 최대 문자 수를 설정할 수 있습니다. 데이터베이스는 성을 400 자까지 허용 할 수 있지만 varchar 100 만 원할 수 있습니다.

Nullable 속성은 비슷합니다. 선택 사항이지만 sproc 호출에서 매개 변수가 null이 될 수없는 경우 .Net 코드에서 nullable이 아니게 설정하면 문제가 더 빨리 강조 표시됩니다.

+0

"특정 텍스트 필드에 최대 문자 수를 설정하려고 할 수 있습니다. 400 자이지만 varchar 100 만 필요합니다. " -이 경우 100자가 넘는 문자열을 전달하면 (DB에서 받아 들일 수 있도록 400 이하로) 문자열이 잘 리면 일부 데이터가 손실 될 수 있습니다. – Roma

관련 문제