테이블에서 행 집합을 선택하고이 중 하나를 임의로 반환하는 함수를 작성하려고합니다. 함수의 첫 x 째 단계는 적절한 행 ID를 보유하는로 C 테이블 변수를 작성하고 채 웁니다. 표는 다음과 같이 정의됩니다.SQL Server의 함수를 사용하여 임의의 행 번호를 반환하십시오.
DECLARE @SuitableID TABLE (
Id INT
)
이 표에는 여러 개의 ID를 저장할 수 있습니다. 이 함수 중 하나를 무작위로 반환해야하지만이를 수행하는 방법을 찾을 수 없습니다. 내가 시도한 다음
Invalid use of a side-effecting operator 'newid' within a function.
TAMPLESAMPLE도 작동하지 않는 것 : 오류 반환
DECLARE @ReturnedID INT
SELECT TOP 1 @ReturnedID = Id
FROM @SuitableID
ORDER BY NEWID()
나는이 구문이 올바른 생각
SELECT @ReturnedID = Id
FROM @SuitableID
TABLESAMPLE (1 ROWS)
을하지만, 내 데이터베이스가 동의하지 않습니다.
Incorrect syntax near the keyword 'TABLESAMPLE'.
내가 뭘 잘못하고 원하는 작업을 수행 할 수 있습니까?
create view [dbo].[sys_ViewNDF]
as
select rand() as [Rnd], getdate() as [Now], getutcdate() as [UTCNow], newid() as [GUID];
당신에게 :
확인이 질문 : https://stackoverflow.com/questions/772517/newid-inside-sql-server-function 이것은'NEWID를 사용하는 것과 같은 오류를 반환 –