2012-04-04 4 views
0

나는 SP 계산 된 열 사양으로?

exec dbo.i114_get_next_oid 

우리의 응용 프로그램 요구 사항

를 호출하여 SQL 삽입에 대한 응용 프로그램 관리 UID를 당겨

create procedure dbo.i114_get_next_oid 
as 
begin 
DECLARE @id as integer 
DECLARE @num_ids as integer 
EXEC dbo.i144_get_ids 2, 1, @id output, @num_ids output 
SELECT @id as N'@base_id' 
end 
go 

다소 성장 다음 SP를 가지고 있고, 궁금하네요 어떻게 내가 할 수있는 'exec dbo.i114_get_next_oid'를 Computed Column Specification으로 사용 하시겠습니까? 아니면 억지로? 이것에 내 머리를 긁적. 감사! 여기

는 애플리케이션에 하드 코딩 된 C# 통해

CREATE TABLE [dbo].[TBL_VITAL_EVENTS](
    [Location_ID] [uniqueidentifier] NOT NULL, 
    [Event_ID] [uniqueidentifier] NOT NULL, 
    [OBJECTID] [uniqueidentifier] NULL, 
CONSTRAINT [PK_TBL_VITAL_EVENTS] PRIMARY KEY CLUSTERED 
(
    [Event_ID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 

ALTER TABLE [dbo].[TBL_VITAL_EVENTS] WITH CHECK ADD CONSTRAINT [FK_TBL_VITAL_EVENTS_GRSM_VITAL_SIGNS_PLOTS] FOREIGN KEY([Location_ID]) 
REFERENCES [dbo].[GRSM_VITAL_SIGNS_PLOTS] ([Location_ID]) 
GO 

ALTER TABLE [dbo].[TBL_VITAL_EVENTS] CHECK CONSTRAINT [FK_TBL_VITAL_EVENTS_GRSM_VITAL_SIGNS_PLOTS] 
GO 

ALTER TABLE [dbo].[TBL_VITAL_EVENTS] ADD CONSTRAINT [DF_TBL_VITAL_EVENTS_Event_ID] DEFAULT (newsequentialid()) FOR [Event_ID] 
GO 

은 현재 애플리케이션 (GIS)를 OBJECTID 필드를 채우는 테이블 스키마를이다. 삽입 된 데이터가 비즈니스 테이블에 삽입되기 전에 추가 테이블에있는 동안 삽입 된 데이터에 대해 몇 가지 추가 연산을 수행 할 때 논리를 우회해야합니다. 이제 우리의 요구 사항은 SP 나 다른 메소드를 트리거 또는 계산 된 컬럼 스펙으로 사용하여 다음 OID를 사용하여 OID 필드를 순차적으로 채우는 것입니다. 다음 OID는 "dbo.i144_get_ids"함수에 의해 관리되며, 응용 프로그램의 아키텍처로 인해 불행히도 삽입에 SP를 사용할 수 없습니다. 여기에있는 공급 업체 문서에서 제공 한 것입니다. http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/in_SQL_Server/006z00000017000000/

답변

2

CROSS APPLY을 사용하여 함수에서 열을 만들 수 있습니다. 당신은 당신의 표가 어떻게 생겼는지 또는 이것에 대한 당신의 질문을 언급하지 않는다, 그래서 여기에 시나리오가있다. SP를 TVF로 재 작성하거나 SP 대신 함수를 사용하는 경우 다음을 사용할 수 있습니다.

+0

다른 열을 만들면이 문제를 해결할 수 있는지 확실하지 않습니다. 명확히 할 원본 텍스트를 편집했습니다. – tpcolson