2014-07-15 3 views
4

우리는 dbo.GENERATE_UUID라는 함수를 가지고 있습니다. 는 나는이t-sql 내장 함수에 대한 동의어를 만들 수 있습니까?

alter function dbo.GENERATE_UUID() 
returns uniqueidentifier 
as begin 
    return (SELECT NEWID()) 
end 

때문에 할 수 없어, compatiblity의 이름을 유지하기를 원하지만 오히려 그러나 NEWID(). 내장 사용하는 것이 "함수 내에서 사이드 초래 운영자 NEWID '의 잘못된 사용을."

그래서 나는

select dbo.GENERATE_UUID() 

내가 얻을 때 대신, DBO "또는 사용자 -

drop function dbo.GENERATE_UUID 

create synonym dbo.GENERATE_UUID for NEWID 

하지만"열 중 하나를 찾을 수 없습니다 "하고 싶은 "dbo.GENERATE_UUID"를 집계하거나 이름이 모호합니다. "

는 또한 기능이 내장 TSQL 이런 종류의 동의어를 만들 어쨌든 거기

create synonym dbo.GENERATE_UUID for master.sys.NEWID 

에 변화를 시도? 모든 SQL Server 버전 2k5에 관심이 있습니다.

+1

체크 [함수 NEWID (http://stackoverflow.com/questions/772517/newid-inside-sql-server-function) 및 [UDF에 비 결정적 함수를 액세스 (HTTP : //www.sqlpointers.com/2006/07/accessing-non-deterministic-functions.html) –

+0

@amit_g : 나는 그것을 보았다. 사실 그것은 기본적으로 내가 대체하고 싶은 것입니다. 실제로 함수 내에서 호출하지 않기 때문에 NEWID()를 사용할 수 있습니다. 그러나 기존 코드는 사용자 정의 래퍼를 사용하며 동일한 사용자 정의 래퍼는 Oracle 버전에서 제공됩니다. 가능하다면 동의어는 깨끗한 전환을 제공합니다. –

+0

이 방법이 도움이되는지 잘 모르겠다. (흥미 롭다.)'SELECT dbo.GENERATE_UUID()'를 실행하면 동의어를 만들 었는지 여부와 상관없이 같은 오류가 발생한다. – DMason

답변

-1

SQL 서버 버전에 따라 예처럼 보입니다. SQL 스칼라 함수는 비고 밑에 있습니다.

MSDN

+0

사용자 정의 SQL 스칼라 기능은 확실하지만 내장 함수의 동의어에 대해 묻습니다. –

관련 문제