scope_identity
을 자식 저장 프로 시저로 전달하는 것에 대해 많은 논의가 있습니다. 행이 부모 저장 프로 시저에 삽입되고 아이디 저장 프로 시저에 ID 값을 전달하려는 정반대의 시나리오가 있습니다.scope_identity를 저장 프로 시저에 전달
그러나 scope_identity를 자식 프로 시저에 직접 전달하면 SQL Server Management Studio에서 구문 분석 오류가 발생합니다.
create procedure parent
as
begin
-- insert a record
exec child scope_identity() -- this does not work
end
그러나 로컬 변수를 사용하면 문제가 해결됩니다.
입력 매개 변수로 직접 scope_identity()
을 전달하지 못한 이유는 무엇입니까?
[캐스트 정수 및 TSQL의 varchar에 연결] (http://stackoverflow.com/questions/4936180/cast-integer-and-concatenate-to-varchar-in-tsql) –
구문 상 사용자가 허용됩니다. 일부 함수 (예 :'@@ IDENTITY')를 전달합니다. 이 목록을 확장하면 [Connect 사이트의 공개 요청] (https://connect.microsoft.com/SQLServer/feedback/details/352110/t-sql-use-scalar-functions-as-stored-procedure-parameters) –
@ Martin - 고마워요. 수년이 지난 후에 매개 변수로 표현을 전달할 수 없다는 것을 처음으로 배웠습니다. 나는 약간 충격을 받았다. SQL2012는 개선되었지만 이것이 향상되었는지 여부는 알 수 없습니다. – intangible02