반응형
newidsql server 함수 내부
쿼리 결과에 테이블 값 함수의 반환 값인 가짜 열을 삽입해야 합니다.이 열 데이터 유형은 고유 식별자여야 합니다.가장 좋은 방법은 사용하는 것입니다.newid()기능.문제는, 제가 사용할 수 없다는 것입니다.newid()다음 유형의 함수 내부:
Invalid use of side-effecting or time-dependent operator in 'newid()' within a function.
여기 현명한 해결책이 있습니다.
create view getNewID as select newid() as new_id
create function myfunction ()
returns uniqueidentifier
as begin
return (select new_id from getNewID)
end
제가 신용할 수 없는 것입니다. 여기서 찾았습니다. http://omnibuzz-sql.blogspot.com/2006/07/accessing-non-deterministic-functions.html
-돈
NEWID()를 함수에 매개변수로 전달할 수 있습니다.
CREATE FUNCTION SOMEIDFUNCTION
(
@NEWID1 as varchar(36), @NEWID2 as varchar(36)
)
RETURNS varchar(18)
AS
BEGIN
-- Do something --
DECLARE @SFID varchar(18)
SELECT @SFID = 'DYN0000000' + LOWER(LEFT(@NEWID1,4)) + LEFT(@NEWID2,4)
RETURN @SFID
END
GO
함수를 다음과 같이 호출합니다.
SELECT dbo.SOMEIDFUNCTION(NewID(),NewID())
대신 기본값으로 사용
create table test(id uniqueidentifier default newsequentialid(),id2 int)
insert test(id2) values(1)
select * from test
newid()가 순차적이지 않기 때문에 페이지 분할이 발생하기 때문에 newid() 대신 newsequentialid()를 사용했습니다. 여기를 참조하십시오. newid와 newsequentialid의 차이를 보여주는 일부 단순 코드
ROW_NUMBER 함수를 사용할 수 있습니다.
선택한다.
(Row_Number() Over(기록ID)) 행 번호로,
레코드 ID,
필드Bla1
시작 테이블 이름
자세한 내용은 http://msdn.microsoft.com/pt-br/library/ms186734.aspx 에서 확인하십시오.
언급URL : https://stackoverflow.com/questions/772517/newid-inside-sql-server-function
반응형
'programing' 카테고리의 다른 글
| Typescript를 사용하여 재료 UI 구성 요소의 소품을 확장하는 방법은 무엇입니까? (0) | 2023.07.06 |
|---|---|
| 다른 분기의 커밋된 복사본이 있는 파일의 현재 작업 복사본 (0) | 2023.07.06 |
| IN() 절 oracle PLSQL의 배열 (0) | 2023.07.06 |
| 파이썬을 사용하여 암호로 보호된 엑셀 파일을 여는 방법은 무엇입니까? (0) | 2023.07.01 |
| Vuex: 알 수 없는 작업 유형: (0) | 2023.07.01 |