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 5301 게시물 읽기
No. 5301
함수 내에서 테이블에 저장된 레코드 개수 반환 에러. 뭐 가 문제인지
작성자
강진수(krnet21)
작성일
2009-08-07 10:39
조회수
6,416

아래와 같은 함수를 작성 했습니다.

alter function [dbo].[RecCount]
(
 @strTableName varchar(32)
)
returns varchar

as


begin


 -- 변수 선언
 declare @intCount bigint set @intCount = 0
 declare @strCount varchar(32)
 declare @strQuery varchar(1024)

 set @strQuery = 'select count(*) as ' + @strCount + ' from ' + @strTableName

 exec @strQuery

 return @strCount

end

위와 같은 함수를 이용해서 SQL 쿼리문을 수행 했는데

select dbo.RecCount('tb_stay_lamp');    -- 'tb_stay_lamp'는 테이블 명 즉, 이 테이블에 저장되어 있는 레코드 개수 반환

다음과 같은 에러 메시지가 출력 됩니다.

메시지 2812, 수준 16, 상태 62, 줄 1
저장 프로시저 ''을(를) 찾을 수 없습니다.

그리고, 혹시 위의 함수 내에서 '@strCount' 변수가 문자열로 저장되어 있는데

이를 정수형 값으로 반환할려면 어떻게 하는지요? 물론 위의 선언에서 return varchar --> return bigint로 해야 겠지만

cast 문을 사용했는데, 제가 내공이 부족해서

cast(@strCount as int) 이렇게 작성했는데 에러 나더라구요.

답변 부탁 드립니다.

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

exec @strQuery의 구문은 procedure를 실행할때 쓰는 구문입니다.

의미상 exec(@strQuery)가 맞은 듯합니다.

 

그런데 function에서는 exec(@strQuery)의 구문은 사용할 수 없습니다.

 

.님이 2009-08-07 10:49에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5304SQL2005에서 데이터가져오기 할때 인덱스는?
김길동
2009-08-27
5831
5303순차적으로 저장된 컬럼들 에서 비어 있는 값 찾는 방법 [1]
김민수
2009-08-26
5928
5302초보적인 날짜 쿼리 좀 알려주세요. [1]
박동한
2009-08-07
6751
5301함수 내에서 테이블에 저장된 레코드 개수 반환 에러. 뭐 가 문제인지 [1]
강진수
2009-08-07
6416
5295SQL 어떻케 발행해야죠. 매번 감사합니다. [2]
이가루
2009-08-06
5469
5294oracle에서 제공하는 dump 같은 함수가 뭔가요?
강철민
2009-08-05
5644
5293쿼리결과를 update하는 프로시져 만들려고 하는데요...
김삼수
2009-08-05
5816
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다