2012. 7. 16. 18:29

특정 Table이 존재하는지 확인하기

select * from DB이름.information_schema.tables where table_name=N'테이블이름'


이렇게 호출해서 결과가 있으면 테이블이 있는 것이고 없으면 테이블이 없는 것임

2011. 8. 5. 10:51

SQL서버에서 WebService 호출

원래 트리거에서 호출해 볼까 했는데,
그건 다들 절대로 하지 말라는 분위기임

일단, 아직 적용을 안해봤기 때문에 아래 소스가 돌아갈지 여부는 잘 모르겠음
외국의 포럼에서 긁어온 소스인데, 돌아갈지 여부는 뭐...나중에 확인 후 수정 예정

아래의 소스를 실행하기 위해선 OLE Automation 옵션을 활성화 시켜야 한다고 함
활성화 방법은


For SQL Server 2005 you have to enable the "OLE Automation" option.
Start-> Programs - > Microsoft SQL Server 2005 -> Configuration Tools ->SQL Server Surface Area Configuration
Click the link Surface Area Configuration for Features
Expand the DB -> Database Engine
Select OLE Automation & Check the checkbox Enable OLE Automation..

-------------------------------------------------------------------------------------------
쿼리로 실행하는 법

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO 

이렇게 호출하면 활성화 됨.(물론 처음 세팅할때만) 



이렇게 써 있었음...;; 아직 안해봐서.. -_-);
일단 정보를 위해서 보관용으로;;

로컬에 설치된 SQL Server 2008 Express R2로 확인해 본 결과
정상 동작함(물론 위의 설정 쿼리를 한번 돌려준 상태임)

Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
 
Code Snippet
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get','http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT','false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
 
Select @ResponseText
 
Exec




 
2011. 4. 15. 10:54

Database 트렌젝션 로그 줄이기

DB 트렌젝션 로그 줄이기
-- 2000용
--BACKUP LOG VALLY_SERVER WITH TRUNCATE_ONLY
--DBCC SHRINKFILE(로그이름,1)

-- 2008용
-- 일단 DB Recovery모델을 full 에서 simple로 변경하여야 한다
select name,recovery_model_desc from sys.databases
Alter database DB이름 SET Recovery simple

select name,size from sys.database_files
DBCC SHRINKFILE (N'DB이름_log' , 1)



-- 2008용 테이블별 용량확인쿼리
SELECT CONVERT(VARCHAR(30), MIN(O.NAME)) AS TABLENAME, LTRIM(STR(SUM(RESERVED) * 8192.0 / 1024.0 / 1024.0, 15,0)) AS TABLESIZE
FROM SYSINDEXES I INNER JOIN SYSOBJECTS O ON (O.ID = I.ID)
WHERE I.INDID IN (0, 1, 255) AND O.XTYPE = 'U'
GROUP BY I.ID
2008. 8. 18. 15:23

datetime 형식을 yyyy-MM-dd 형식으로 하기

SELECT convert(varchar(10),getdate(),120)

다른거 없음. 저 쿼리 하나만 참고할것.

오늘 날자가 2008-08-18일이면 '2008-08-18' 로 결과값 나옴
저 120이라는 숫자가 매일 기억이 안나서 지겨워서 써놓음