exec(@sql)에서 값 반환
나는 가치를 얻고 싶습니다.Exec(@sql)
에 할당합니다.@Rowcount(int)
제 질문은 다음과 같습니다.
'SET @RowCount = (select count(*)
FROM dbo.Comm_Services
WHERE CompanyId = '+cast(@CompanyId as char)+' and '+@condition+')'
한편으로는 sp_executesql을 사용할 수 있습니다.
exec sp_executesql N'select @rowcount=count(*) from anytable',
N'@rowcount int output', @rowcount output;
반면에 임시 테이블을 사용할 수도 있습니다.
declare @result table ([rowcount] int);
insert into @result ([rowcount])
exec (N'select count(*) from anytable');
declare @rowcount int = (select top (1) [rowcount] from @result);
DECLARE @nReturn int = 0
EXEC @nReturn = Stored Procedure
오늘 이걸 가지고 놀다가...저는 당신이 또한 사용할 수 있다고 믿습니다.@@ROWCOUNT
다음과 같이:
DECLARE @SQL VARCHAR(50)
DECLARE @Rowcount INT
SET @SQL = 'SELECT 1 UNION SELECT 2'
EXEC(@SQL)
SET @Rowcount = @@ROWCOUNT
SELECT @Rowcount
그런 다음 교체합니다.SELECT 1 UNION SELECT 2
숫자를 세지 않고 당신의 실제 선택으로.다음과 같이 선택 항목에 1개만 넣는 것이 좋습니다.
SELECT 1
FROM dbo.Comm_Services
WHERE....
....
(SELECT *를 넣는 것과 반대로)
도움이 되길 바랍니다.
이 패턴을 사용하면 exec 문 결과에서 원하는 유형 또는 결과를 반환할 수 있습니다.
declare @result table ([rowcount] int);
insert into @result ([rowcount])
Exec(@sql)
그게 내 절차야.
CREATE PROC sp_count
@CompanyId sysname,
@codition sysname
AS
SET NOCOUNT ON
CREATE TABLE #ctr
( NumRows int )
DECLARE @intCount int
, @vcSQL varchar(255)
SELECT @vcSQL = ' INSERT #ctr FROM dbo.Comm_Services
WHERE CompanyId = '+@CompanyId+' and '+@condition+')'
EXEC (@vcSQL)
IF @@ERROR = 0
BEGIN
SELECT @intCount = NumRows
FROM #ctr
DROP TABLE #ctr
RETURN @intCount
END
ELSE
BEGIN
DROP TABLE #ctr
RETURN -1
END
GO
내가 당신을 올바르게 이해했다면, (아마도 나는)
'SELECT @RowCount = COUNT(*)
FROM dbo.Comm_Services
WHERE CompanyId = ' + CAST(@CompanyId AS CHAR) + '
AND ' + @condition
언급URL : https://stackoverflow.com/questions/4130462/return-value-from-execsql
'programing' 카테고리의 다른 글
Angular 응용 프로그램에서 Puppeteer를 사용하는 방법 (0) | 2023.07.06 |
---|---|
판다를 사용하여 둘 이상의 최대 열 찾기 (0) | 2023.07.06 |
두 개의 다른 막대 열의 연결을 나타내는 열 추가 (0) | 2023.07.06 |
VBA에서 사용되지 않는 변수를 알 수 있는 방법이 있습니까? (0) | 2023.07.06 |
Oracle SQL: 인라인 뷰에 있을 때 SYS_GUID()의 동작을 이해하시겠습니까? (0) | 2023.07.06 |