보관물

Archive for 10월, 2007

C#의 조건연산자(?:)와 Null-Coalescing 연산자(??)

변수를 할당하는 방법중에 일반적으로 조건연산자를 사용합니다. 하지만 변수가 Null이 아닌경우에만 사용이 가능합니다. 만약 C#에서 Null인 경우에는 다음과 같이 조건연산자를 사용합니다

string strValue = oldValue != null ? oldValue : "변수 값";

oldValue 가 Null 이 아닌 경우에는, strValue 에 oldValue 가 할당되고, 이외에는 strValue에 “변수 값”이 할당됩니다.

이것은 Null-Coalescing 연산자를 사용하여 다음과 같이 구현합니다

string strValue = oldValue ?? "변수 값";

이 로직은 동일합니다. oldValue가 Null 이 아니면, strValue 변수에 oldValue가 할당됩니다.

또한 Null-Coalescing 연산자는 여러가지 Null 유형에 대한 지원이 제공됩니다.

int? count = null;

int strValue = count ?? default (int);

count가 null이면, strValue에는 Integer 유형의 기본값이 할당됩니다(int 기본값인 0으로)

카테고리:C#

SQL 서버에서 테이블 내역서 뽑기

SQL 서버에서 테이블 내역서 뽑기 

SQL 서버에서 Table 내역서를 가져온다.

select D.[value] as tName,A.[name] as TableName,e.[value] AS cName,B.[Name] as ColumnName,
CASE WHEN c.[Name] IN (‘int’,’bit’) THEN c.[Name]
ELSE c.[Name] + ‘(‘ +
CASE WHEN B.Max_length = -1 THEN ‘MAX’ ELSE Cast(B.Max_length AS Varchar(100)) END
 + ‘)’ END as DataType
from sys.tables a
 inner join sys.columns b on a.object_id = b.object_id
 inner join sys.types c on b.system_type_id = c.system_type_id
 inner join sys.extended_properties d on A.object_id = d.major_id and d.minor_id = 0
 inner join sys.extended_properties e on A.object_id = e.major_id and e.minor_id = b.column_id
where A.[name] not in (‘sysdiagrams’)
order by 2
sys.tables : 테이블 정보

sys.columns : Column 정보

sys.types : 데이타 타입정보

sys.extended_properties : 테이블과 Column의 한글 정보
 

카테고리:SQL SERVER