반응형

STORY 444

MSSQL 주에대한 질문

함수를 만들어서 사용하심이 어떻세요 ^^* CREATE FUNCTION udfBusinessWeek (@Date as smalldatetime, @BeginOrEnd as char(1)) RETURNS smalldatetime AS /*이 함수는 비즈니스 위크를 기준으로 첫째 요일 또는 마지막 요일을 반환한다*/ BEGIN DECLARE @Output smalldatetime IF @BeginOrEnd = 'B' BEGIN SET @Output = CASE WHEN DATEPART(dw, @DATE) = 1 THEN DATEADD(d, -6, @DATE) ELSE DATEADD(d, -DATEPART(dw, @DATE)+2, @DATE) END END ELSE IF @BeginOrEnd = 'E' BEG..

WorkaHolic/MSSQL 2010.04.08

SQL 복구는?

운영중인 디비일경우 사용자가 남아있어서 복원이 안되는 경우가 있습니다. 혼자서 쓸때도 뭔가[?]에 의해 프로세스가 남아있어서 복원이 잘 안되고 좀 짜증날때가 있죠.. 그럴때 유저 킬하는 쿼리입니다... use master go declare @dbname sysname set @dbname = 'century21korea' -- substitute your database name here set nocount on declare Users cursor for select spid from master..sysprocesses where db_name(dbid) = @dbname declare @spid int, @str varchar(255) open users fetch next from users ..

WorkaHolic/MSSQL 2010.04.08

MSSQL 문자열 중에서 숫자만 골라 내는 함수

전화번호 011-9874-1111 에서 01198741111 만 얻어 낼때 사용 하시면 유용할 듯 합니다. ==================================================== create function make_num( @cur_num varchar(50) ) returns varchar(50) as begin declare @i as int declare @temp_num as varchar(50) set @cur_num = replace(@cur_num,'.','') set @cur_num = replace(@cur_num,',','') set @cur_num = replace(@cur_num,'+','') set @cur_num = replace(@cur_num,'-',..

WorkaHolic/MSSQL 2010.04.08

레지스트리의 키값을 읽어올때..

SQL 서버를 이용해서 레지스트리에 접근하는 방법입니다. ======================================================================= SQL 서버에서 레지스트리 값등을 관리할 수 있는 팁입니다. 기본으로 내장되어 있는 스토어드 프로시져를 이용합니다. 주의 : 테스트 하실때 주의 하세요... 레지스트리 값 읽기 : EXECUTE xp_regread [@rootkey=]"rootkey", [@key=]"key" [, [@value_name=]"value_name"] [, [@value=]@value OUTPUT] 예 : 만일 "HKEY_LOCAL_MACHINE"의 "SOFTWARE\Test" 키에서 "TestValue" 값을 @test 변수로 읽어들이려면 ..

WorkaHolic 2010.04.08

SQL서버로 메일 보내기 ext.MSSQL2000

출처 : http://swynk.com Writer : Paul Wong (pwong@wesync.com) Date : 12/4/00 12:39:33 PM 순수하게 SQL서버로 메일을 보내기 입니다. 저는 SQL2000으로 테스트 해 보았는데 아주 잘 돌아 가네요.. sp_oa~~~라는 방법으로 데이터를 처리하는데 흥미 있군요. 역시나 방법은 찾으면 있난 봅니다. 도움 되시길 바랍니다. --실행하기 exec pSendMail '보내는 사람 멜 주소', '받을사람멜주소', '제목','내용' --저장 프로시져 생성 create procedure pSendMail(@From varchar(50), @To varchar(50), @Subject varchar(255), @Body varchar(8000)) as..

WorkaHolic/MSSQL 2010.04.08

sp_executesql 에서 nvarchar(max) 사용

sql server 2000에서 sp_executesql 을 사용할 때 제약조건이 있었는데, sql 문을 4000자 이상 처리할 수 없다는 것입니다. sql 문은 유니코드 문자열(nvarchar 나 nchar)이어야 하기 때문에 최대 4000자까지 쓸 수 있습니다. 참고로 ntext 형은 변수 선언을 할 수 없습니다. 예를 들어 다음과 같은 쿼리가 있다고 해보죠. declare @sql nvarchar(4000) set @sql = 'select * from tableA .....' exec dbo.sp_executesql @sql 만약 @sql에 4000자가 넘어가는 문장을 넣게되면 @sql은 4000자에서 문장을 자를것이고, 따라서 sp_executesql은 실패하게 될 것입니다. 하지만 sql se..

WorkaHolic 2010.04.08

MSSQL SP_EXECUTESQL

문자열을 실행하려면 EXECUTE 문 대신 sp_executesql을 사용하는 것이 좋습니다. sp_executesql은 매개 변수 대체를 지원하므로 EXECUTE보다 융통성이 뛰어납니다. 또한 sp_executesql은 SQL Server 2005 에서 재사용이 쉬운 실행 계획을 생성하므로 EXECUTE 문보다 효율적입니다. sp_executesql은 Transact-SQL 문자열에 지정된 매개 변수의 매개 변수 값 대체를 지원하지만 EXECUTE 문은 지원하지 않습니다. 그러므로 sp_executesql로 생성된 Transact-SQL 문자열은 EXECUTE 문으로 생성된 것보다 더 비슷합니다. SQL Server 쿼리 최적화 프로그램은 sp_executesql의 Transact-SQL 문을 이전에 ..

WorkaHolic/MSSQL 2010.04.08

MSSQL 동적 SQL의 축복과 저주

원문 : SQL Server MVP Erland Sommarskog의 SQL Text 번역 : quest, ASP MVP (microsoft.public.kr.asp.qna) Microsoft SQL 서버에 대한 여러 뉴스그룹에서 왜 다음 쿼리가 불가능한지를 문의하는 사람들을 종종 보게 된다.:SELECT * FROM @tablename SELECT @colname FROM tbl SELECT * FROM tbl WHERE x IN (@list) 많은 경우에 간략한 예와 함께 동적 SQL을 사용하세요 라는 답변이 달리곤 하지만, 답변하는 사람들조차 동적 SQL 문의 사용시에 주의해야 할 사항에 대한 언급을 잊는 경우가 많다. 이 기사에서는 MS SQL Server의 저장 프로시저에서 동적 SQL의 사용에..

WorkaHolic/MSSQL 2010.04.08
반응형