« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : ... 12 : Next »
데이터품질관리인증센터 - http://www.dbq.or.kr/

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/02/26 11:50 2009/02/26 11:50
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/4046

DB구축.운영 종합정보 - http://www.dbguide.net/





사업안내
▷ DB구축 가이드
▷ 지식라이브러리
▷ DB Q&A
▷ 오프/온라인 교육

데이터베이스가 사회기반구조 및 지식 정보통신 산업의 핵심 인프라로 인식되면서, 국가의 경제, 사회 산업, 문화 과학등의 공공부문과 민간기업에서 데이터베이스를 구축, 관리, 활용하는 사업이 날로 증가하고 있습니다.

이에 따라 한국데이터베이스진흥센터는 고품질 다양한 DB정보를 일원화된 채널로 공공기관 및 민간기업에 제공하여, 국내 데이터베이스 사업수행을 적극적으로 지원, 업무 수행의 효율성을 증대시키고, 최신 DB 사업 정보를 제공하여 시행착오 절감하고 , 커뮤니티 활성화를 통한 지식 공유 문화 형성을 위해 2003 년 DB 지식정보시스템 포탈 사이트 “ DBGuide.net"을 구축하였습니다. DBGuide.net의 총 구성은 DB구축가이드, 지식 라이브러리,DB Q&A, 제품정보, 교육/세미나, D-BLOG, 커뮤니티로 나누어집니다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/02/26 11:46 2009/02/26 11:46
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/4045

한국데이터베이스 진흥원 - http://www.dpc.or.kr/

사업안내
▷ 데이터 품질관리
▷ 공공정보 유통지원
▷ DB 산업 통향분석
▷ DB 전문인력 양성
▷ 국가공인 DA 자격검정
▷ 정보화사업 원가산정
▷ DB 표준화 연구
▷ DB 구축,운영 종합정보제공

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/02/26 11:41 2009/02/26 11:41
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/4044

SET NOCOUNT(Transact-SQL)

Transact-SQL 문의 영향을 받은 행 수를 나타내는 메시지가 결과의 일부로 반환되지 않도록 합니다.

구문
------------------------------------------------------------------------------------------

SET NOCOUNT { ON | OFF }

------------------------------------------------------------------------------------------

SET NOCOUNT 옵션을 ON으로 설정하면 Transact-SQL 문의 영향을 받은 행 수를 나타내는 수가 반환되지 않습니다. SET NOCOUNT 옵션을 OFF로 설정하면 이 수가 반환됩니다.

SET NOCOUNT 옵션이 ON으로 설정되어 있을 때도 @@ROWCOUNT 함수는 업데이트됩니다.

SET NOCOUNT 옵션을 ON으로 설정하면 저장 프로시저의 각 문에 대해 클라이언트에게 DONE_IN_PROC 메시지를 보내지 않습니다. SQL Server 2005 에서 제공하는 유틸리티를 사용하여 쿼리를 실행하면 SELECT, INSERT, UPDATE, DELETE 등의 Transact-SQL 문 끝에 nn rows affected이라는 메시지가 표시되지 않습니다.

실제 데이터를 많이 반환하지 않는 일부 문이 포함된 저장 프로시저의 경우, 이 유틸리티를 사용하면 네트워크 트래픽이 크게 줄기 때문에 성능이 눈에 띄게 향상됩니다.

SET NOCOUNT 옵션은 실행 시간 또는 런타임에 설정되며, 구문 분석 시에는 설정되지 않습니다.

예시
------------------------------------------------------------------------------------------

USE AdventureWorks;
GO
SET NOCOUNT OFF;
GO
-- Display the count message.
SELECT TOP(5)LastName
FROM Person.Contact
WHERE LastName LIKE 'A%';
GO
-- SET NOCOUNT to ON to no longer display the count message.
SET NOCOUNT ON;
GO
SELECT TOP(5) LastName
FROM Person.Contact
WHERE LastName LIKE 'A%';
GO
-- Reset SET NOCOUNT to OFF
SET NOCOUNT OFF;
GO

------------------------------------------------------------------------------------------
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/02/24 17:45 2009/02/24 17:45
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/4035

OPENQUERY(Transact-SQL)

지정한 연결된 서버에서 지정한 통과 쿼리를 실행합니다. 이 서버는 OLE DB 데이터 원본입니다. OPENQUERY는 테이블 이름처럼 쿼리의 FROM 절에서 참조될 수 있습니다. 또한 OPENQUERY는 INSERT, UPDATE 또는 DELETE 문의 대상 테이블로 참조될 수도 있습니다. 이것은 OLE DB 공급자 기능에 종속됩니다. 쿼리는 여러 결과 집합을 반환할 수 있지만 OPENQUERY는 첫 번째 것만 반환합니다.


구문

OPENQUERY ( linked_server ,'query' )
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/02/03 17:34 2009/02/03 17:34
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/3954

MS SQL Linked Server 설정

연결된 서버를 만듭니다. 연결된 서버를 만들면 OLE DB 데이터 원본과 유형이 다른 분산 쿼리에 액세스할 수 있습니다. sp_addlinkedserver를 사용하여 연결된 서버를 만든 후 이 서버에 대해 분산 쿼리를 실행할 수 있습니다. 연결된 서버를 SQL Server 인스턴스로 정의한 경우에는 원격 저장 프로시저를 실행할 수 있습니다.

구문
-----------------------------------------------------------------------------------------
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
-----------------------------------------------------------------------------------------

로컬 SQL Server 인스턴스의 알려진 원격 서버 및 연결된 서버 목록에서 서버를 제거합니다.

구문

-----------------------------------------------------------------------------------------
sp_dropserver [ @server = ] 'server'
[ , [ @droplogins = ] { 'droplogins' | NULL} ]
-----------------------------------------------------------------------------------------




sp_addlinkedserver
@server = 'WEB',
@srvproduct = '',
@provider = 'MSDASQL',
@datasrc = null,
@location = null,
@provstr = 'DRIVER=MySQL ODBC 3.51 Driver;SERVER=192.168.1.1;DATABASE=board;UID=test;PWD=000;'

exec sp_dropserver WEB


Excel 스프레드시트에서 Microsoft OLE DB Provider for Jet 사용
Excel 스프레드시트에 연결하려는 목적으로 Microsoft OLE DB Provider for Jet을 사용하여 연결된 서버 정의를 생성하려면, 먼저 선택할 Excel 워크시트의 열과 행을 지정하여 Excel 내에 명명된 범위를 만드십시오. 범위의 이름은 분산 쿼리에서 테이블 이름으로 참조할 수 있습니다.

-----------------------------------------------------------------------------------------
EXEC sp_addlinkedserver 'ExcelSource',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\MyData\DistExcl.xls',
NULL,
'Excel 5.0'
GO
-----------------------------------------------------------------------------------------
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/02/03 17:29 2009/02/03 17:29
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/3953

[MS-SQL] WHILE(Transact-SQL)

SQL 문 또는 문 블록의 반복 실행을 위한 조건을 설정합니다. 문은 지정된 조건이 true인 한 반복적으로 실행됩니다. WHILE 루프 내의 문 실행은 BREAK와 CONTINUE 키워드를 사용하여 루프 내에서 제어할 수 있습니다.

Transact-SQL 구문 표기 규칙

구문

------------------------------------------------------------------------------------------

WHILE Boolean_expression
{ sql_statement | statement_block }
[ BREAK ]
{ sql_statement | statement_block }
[ CONTINUE ]
{ sql_statement | statement_block }

------------------------------------------------------------------------------------------



주의
둘 이상의 WHILE 루프가 중첩된 경우, 내부 루프에 BREAK가 있으면 현재 루프를 종료하고 한 단계 바깥쪽 루프로 이동합니다. 먼저 내부 루프의 끝 이후에 있는 모든 문이 실행된 다음 바깥쪽 루프가 다시 시작됩니다.

인수
Boolean_expression

TRUE 또는 FALSE를 반환하는 식입니다. 부울 식에 SELECT 문이 포함된 경우에는 SELECT 문을 괄호로 묶어야 합니다.

{sql_statement | statement_block}

문 블록에 정의된 Transact-SQL 문이나 문 그룹입니다. 문 블록을 정의하려면 흐름 제어 키워드인 BEGIN 및 END를 사용하십시오.

BREAK

현재 위치에 해당하는 WHILE 루프를 종료합니다. 루프의 끝을 표시하는 END 키워드 다음에 있는 모든 문은 그대로 실행됩니다.

CONTINUE

CONTINUE 키워드 다음의 모든 문을 무시하고 WHILE 루프가 다시 시작되도록 합니다.



1. 중첩된 IF...ELSE 및 WHILE에서 BREAK 및 CONTINUE 사용
다음 예에서는 제품의 평균 정가가 $300 미만인 경우 WHILE 루프가 가격을 두 배로 한 다음 최대 가격을 선택합니다. 최대 가격이 $500 이하인 경우 WHILE 루프가 다시 시작되어 가격을 다시 두 배로 만듭니다. 이 루프는 최대 가격이 $500를 초과할 때까지 가격을 계속 두 배로 만든 다음 WHILE 루프를 종료하고 메시지를 출력합니다.


------------------------------------------------------------------------------------------

USE AdventureWorks;
GO
WHILE (SELECT AVG(ListPrice) FROM Production.Product) < $300
BEGIN
UPDATE Production.Product
SET ListPrice = ListPrice * 2
SELECT MAX(ListPrice) FROM Production.Product
IF (SELECT MAX(ListPrice) FROM Production.Product) > $500
BREAK
ELSE
CONTINUE
END
PRINT 'Too much for the market to bear';

------------------------------------------------------------------------------------------

2. 커서가 있는 쿼리 내에서 WHILE 사용
다음 WHILE 구문은 AdventureWorks 데이터베이스에 있는 모든 테이블의 행 개수를 반환합니다. WHILE 구문은 커서와 함께 사용되는 @@FETCH_STATUS 함수의 반환 값을 테스트합니다. @@FETCH_STATUS는 -2, -1 또는 0을 반환할 수 있기 때문에 3가지 경우를 모두 테스트해야 합니다. 쿼리가 실행된 이후에 커서 결과로부터 행을 삭제한 경우에는 해당 행을 건너뜁니다. 성공적으로 인출(0)된 경우 BEGIN...END 루프 내의 SELECT가 실행됩니다.


------------------------------------------------------------------------------------------

USE AdventureWorks;
GO
DECLARE tnames_cursor CURSOR
FOR
SELECT s.name + '.' + t.name
FROM sys.tables AS t
JOIN sys.schemas AS s ON s.schema_id = t.schema_id;
OPEN tnames_cursor;
DECLARE @tablename sysname;
FETCH NEXT FROM tnames_cursor INTO @tablename;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
SELECT @tablename = RTRIM(@tablename);
EXEC ('SELECT ''' + @tablename + ''' = count(*) FROM '
+ @tablename );
PRINT ' ';
END;
FETCH NEXT FROM tnames_cursor INTO @tablename;
END;
CLOSE tnames_cursor;
DEALLOCATE tnames_cursor;

------------------------------------------------------------------------------------------
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/01/28 12:03 2009/01/28 12:03
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/3934

[MS-SQL] GOTO(Transact-SQL)

실행 흐름을 지정된 레이블로 변경합니다. GOTO 다음에 이어지는 Transact-SQL 문을 건너뛰고 지정된 레이블에서 처리를 계속 이어갑니다. GOTO 문과 레이블은 프로시저, 일괄 처리, 문 블록 등 어디에서나 사용할 수 있습니다. GOTO 문은 중첩될 수 있습니다.

구문
------------------------------------------------------------------------------------------

Define the label: label : Alter the execution:
GOTO label

------------------------------------------------------------------------------------------

주의
GOTO는 조건부 흐름 제어 문, 문 블록 또는 프로시저 내에서 사용할 수 있지만 일괄 처리 밖에 있는 레이블로 이동할 수 없습니다. GOTO 분기는 GOTO 전후에 정의된 레이블로 이동할 수 있습니다.

인수
label
GOTO의 대상이 해당 레이블인 경우 처리가 시작되는 지점입니다. 레이블은 식별자 규칙을 따라야 합니다. 레이블은 GOTO 사용 여부에 관계 없이 주석을 기록하는 방법으로 사용될 수 있습니다.

사용 권한
GOTO 권한은 모든 유효한 사용자에게 기본적으로 부여됩니다.


다음 예에서는 WHILE 사용의 대안으로 GOTO 루핑을 보여 줍니다.

참고:
tnames_cursor 커서는 정의되지 않습니다. 이 예는 설명을 위해 작성한 것입니다.

------------------------------------------------------------------------------------------

USE AdventureWorks;
GO
DECLARE @tablename sysname
SET @tablename = N'Person.AddressType'
table_loop:
IF (@@FETCH_STATUS <> -2)
BEGIN
SELECT @tablename = RTRIM(UPPER(@tablename))
EXEC ('SELECT ''' + @tablename + ''' = COUNT(*) FROM '
+ @tablename )
PRINT ' '
END
FETCH NEXT FROM tnames_cursor INTO @tablename
IF (@@FETCH_STATUS <> -1) GOTO table_loop
GO

------------------------------------------------------------------------------------------
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/01/28 12:00 2009/01/28 12:00
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/3933

ISNULL
: 식이 Null인지 여부에 따라 부울 결과를 반환합니다.
Null 값이 포함되어 있을 경우 TRUE를 반환합니다.

-- =================================================
-- Author: 김홍완
-- Create date: 2009-01-22
-- Description: 표준 SELECT
-- EXEC SP_COMMON_SELECT '테이블명','출력개수','필드명','조건절','정렬값','그룹값'
-- =================================================

CREATE PROCEDURE [DBO].[SP_COMMON_SELECT]

@tableName varchar(32) -- 테이블명
, @top varchar(16)=NULL -- 출력개수
, @field varchar(512)='*' -- 필드명
, @strWhere varchar(512)=NULL -- 조건값
, @strOrder varchar(512)=NULL -- 정렬값
, @strGroup varchar(128)=NULL -- 그룹값

AS

BEGIN
SET NOCOUNT ON;

DECLARE @QueryStr varchar(8000) -- 쿼리문
IF @TOP = ''
SET @TOP = NULL
IF @field = ''
SET @field = NULL
IF @strWhere = ''
SET @strWhere = NULL
IF @strOrder = ''
SET @strOrder = NULL
IF @strGroup = ''
SET @strGroup = NULL

SET @QueryStr = 'SELECT '+ ISNULL(' TOP ' + @top,' ') + ISNULL( ' ' + @field, ' * ') +' FROM '+ @tableName
+ ISNULL(' WHERE '+@strWhere,' ')
+ ISNULL(' ORDER BY '+ @strOrder,' ')
+ ISNULL(' GROUP BY '+ @strGroup,' ')


-- PRINT @QueryStr
EXEC(@QueryStr)

END
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/01/22 16:08 2009/01/22 16:08
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/3924

[MS-SQL] UPDATE ... CASE ...

UPDATE를 사용하여 테이블에 대해 상당히 복잡한 수정 작업을 해야 할 경우,
CASE 수식을 사용할 수 있다.

즉, 난해한 함수들과 제어문을 사용하여 개별적으로 UPDATE를 실행시켜야 되는 상황에서, 간단히 CASE 를 사용하여 프로그램 로직을 내장시킬 수 있다.

-------------------------------------------------------

SELECT TITLE_ID, TYPE, PRICE, FROM TITLES

UPDATE TITLES SET
PRICE = PRICE * CASE TITLE
   WHEN 'business' THEN 1.5
   WHEN 'mod_cook' THEN .8
   WHEN 'trad_cook' THEN .6
   WHEN 'psychology' THEN .5
   WHEN 'popular_comp' THEN 1.75
   ELSE .75

-------------------------------------------------------
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/01/22 14:41 2009/01/22 14:41
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/3923

« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : ... 12 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/04   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
Statistics Graph

Site Stats

Total hits:
182926
Today:
315
Yesterday:
607