database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 4226 게시물 읽기
No. 4226
가변형에서 ' 의사용법 에 대해서 알고 싶습니다.
작성자
이돈규(koreawind)
작성일
2008-05-26 15:18
조회수
4,309

SET @SQL = + @SQL + ' SELECT * FROM'  -- SQL로 변수에 SQL문 set,(OPENROWSET으로 담긴 데이타 셀렉트)

SET @SQL = + @SQL + ' OPENROWSET(''SQLOLEDB''' -- SQLOLEDB 연결,

SET @SQL = + @SQL + ',''1.2.3.4''' -- 디비 아이피 지정

SET @SQL = + @SQL +';''aaa'';''aaa'',' -- 디비유저아이디, 디비유저비밀번호

SET @SQL = + @SQL + '''SELECT * LRD  WHERE COM_NAME = '''''+ @COM_NAME + ''''' and NAME = '''''+ @S_NAME + ''''' and NO = ' -- 서브쿼리 시작

                                  + CAST(@REL_NO   AS NVARCHAR(30)) + 'or NO = '+ CAST(@LOAN_AND_CARD_LIST_NO AS NVARCHAR(30)) 

SET @SQL = + @SQL + ''')' -- 서브쿼리 종료


쿼리 구문에서 ' 의 배치 형식에 대해서 알고 싶습니다. 

이 글에 대한 댓글이 총 1건 있습니다.

CREATE PROC LOTRO_SRC_ODS_V_LOTROObjectCharacterHistory
AS

TRUNCATE TABLE  DTS_SVR.DBO.LOTRO_V_LOTROObjectCharacterHistory

DECLARE
   @WORKDATE VARCHAR(100) -- 작업일
 , @DATE1 VARCHAR(100)  -- 어제 6 (작업일 기준)
 , @DATE2 VARCHAR(100)  -- 오늘 6
 , @DATE3 VARCHAR(100)  -- 어제 8
 , @DATE4 VARCHAR(100)  -- 오늘 8
 , @TIME VARCHAR(100)  -- 기준시간
 , @SQL VARCHAR(8000)  -- SQL 문장

--날짜가 바뀌면 이부분만 바꾸면 됩니다.
SET @WORKDATE = CONVERT(CHAR(8),GETDATE()-1,112)

SELECT 
   @WORKDATE = @WORKDATE
 , @DATE1 = RIGHT(CONVERT(CHAR(8), DATEADD(DAY,0, @WORKDATE), 112),6)
 , @DATE2 = RIGHT(CONVERT(CHAR(8), DATEADD(DAY,1, @WORKDATE), 112),6)
 , @DATE3 = RIGHT(CONVERT(CHAR(8), DATEADD(DAY,0, @WORKDATE), 112),8)
 , @DATE4 = RIGHT(CONVERT(CHAR(8), DATEADD(DAY,1, @WORKDATE), 112),8)
 , @TIME = '03:00:00.000' -- 시간이 바뀌면 이부분만 바뀌면 됩니다.
 , @SQL = ''
-- 디비그
-- SELECT @WORKDATE, @DATE1, @DATE2, @DATE3, @DATE4, @SQL, @TIME

DECLARE
         @SQL2 NVARCHAR(4000)
 , @VARI NVARCHAR(4000)
 , @ObjectHistoryID BIGINT
 , @ObjectHistoryIDVarChar VARCHAR(100)

 

-- GRS1

SET @SQL2 = 'SELECT TOP 1 @ObjectHistoryID = [ObjectHistoryID] FROM OPENROWSET
  (''SQLOLEDB'',''192.168.0.21'';''userid'';''password'',
   ''
    SELECT
     TOP 1 ObjectHistoryID
    FROM
     LOTROGRS001.DBO.V_LOTROObjectCharacterHistory WITH (NOLOCK)
    WHERE
     CreateDate >= '''''+@DATE3+' '+@TIME+'''''
     AND  CreateDate < '''''+@DATE4+' '+@TIME+'''''
     AND ObjectType = 10
    ORDER BY
     CreateDate ASC
   ''
  )'


SET @VARI = '@ObjectHistoryID BIGINT OUT'
EXEC SP_EXECUTESQL @SQL2, @VARI, @ObjectHistoryID OUT
SET @ObjectHistoryIDVarChar = ISNULL(@ObjectHistoryID,0)


SET @SQL =
'
 INSERT INTO DTS_SVR.DBO.LOTRO_V_LOTROObjectCharacterHistory WITH(TABLOCK)
 SELECT * FROM OPENROWSET(''SQLOLEDB'',''192.168.0.21'';''userid'';''password'',
 ''
  SELECT
   1 WORLDID
   , [ObjectHistoryID], [ParentHistoryID], [ObjectID], [ParentID], [ObjectType]
   , [CreateDate], [EventID], [WorldName], [SubscriptionName], [AccountName]
   , [GameCreateTime], [Name], [IsAdmin], [Species], [Class]
   , [Level], [EarnedXP], [TerritoryID], [AreaID], [DungeonID]
   , [GuildID], [GuildRank], [AProfessionID], [AProficiencyLevel], [AMasteryLevel]
   , [BProfessionID], [BProficiencyLevel], [BMasteryLevel], [CProfessionID], [CProficiencyLevel]
   , [CMasteryLevel], [Currency], [IsMonsterPlayer], [ConjunctionSkillType], [PvpRatingPoints]
   , [GloryPoints], [GloryRank], [Nationality], [IsDeleted], [MPPercent]
   , [DestinyPoints], [GarnishRemaining], '''''+@DATE3+'''''
  FROM
   LOTROGRS001.DBO.V_LOTROObjectCharacterHistory WITH (NOLOCK)
  WHERE
     CreateDate >= '''''+@DATE3+' '+@TIME+'''''
     AND  CreateDate < '''''+@DATE4+' '+@TIME+'''''
     AND ObjectType = 10
   AND ObjectHistoryId >= '+@ObjectHistoryIDVarChar+'
 ''
 )
'

EXEC (@SQL)


go

위 프로시져를 분석해보시면 좋을것 같습니다.

석이님이 2008-05-27 14:30에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4229차액을 표현하고 싶습니다. [1]
질문요
2008-05-27
4312
4228서브쿼리에서 찾아올 때는 풀 스캔, 키 값 범위 주면 index 를 타는 문제
김기운
2008-05-27
4243
4227같은 table내 데이타를 복사해 새로운 데이타로 만드는 query는? [4]
김기완
2008-05-27
4616
4226가변형에서 ' 의사용법 에 대해서 알고 싶습니다. [1]
이돈규
2008-05-26
4309
4224Sum 을 여러번 하는데 너무 느려요~!! [2]
최승위
2008-05-26
4414
4223오라클 펑션을 MS SQL로 변환하려고 합니다. [1]
질문요
2008-05-23
4975
4222sp_helpdb 로 데이터베이트 리스트를 가져올려고 하는데요. [1]
우왁
2008-05-23
4617
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다