0
ORG_TOOLS
테이블에 ToolIds
의 목록과 각 고유 한 OrgId의 상태 값 목록이 있습니다. 저장 프로 시저 sp_ORG_ORGANIZATIONS_CreateDefaultTools
은 기본값을 OrgId = 0
에서 새로 지정한 OrgId
으로 복사합니다. 그것은이 과정에 상관없이 기본 상태 값이 무엇인지, 새로 OrgId
지정에 대한 ToolIds
항상 코드가 답을 제공 1.테이블 만들기 오류 - 테이블 만들기 기본적으로 오류가 있습니다
CREATE TABLE [dbo].[ORG_TOOLS]
(
[OrgId] [int] NOT NULL,
[ToolId] [int] NOT NULL,
[Status] [bit] NOT NULL
CONSTRAINT [DF_ORG_TOOLS_Status] DEFAULT ((1))
)
CREATE PROCEDURE dbo.sp_ORG_ORGANIZATIONS_CreateDefaultTools
@OrgId INT
AS
SET NOCOUNT ON
INSERT INTO ORG_TOOLS (OrgId, ToolId)
(SELECT @OrgId, ToolId
FROM ORG_TOOLS
WHERE OrgId = 0)
GO
사이드 노트에 대한 새로운 라인이 있어야합니다. 당신은 **하지 **은'sp_'를 사용한다 저장 프로 시저의 접두사. Microsoft는 [자체 저장을 위해이 접두어를 예약했습니다 (* 저장 프로 시저 명명 * 참조)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) 및 당신은 미래에 언젠가 이름 충돌의 위험을 감수해야합니다. [저장 프로 시저 성능에 좋지 않습니다.] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). 'sp_'를 피하고 다른 것을 접두어로 사용하는 것이 가장 좋습니다. –
코드는 사용자가 말하는 것과 정확히 일치합니다. 새 행을 삽입하고 OrgId 및 TooId 열을 설정합니다. Status 값은 기본 제약 조건 또는 트리거에서 가져옵니다. 상태가 1로 설정되어 있다고 불평하지만, ** 정확히 ** 귀하의 코드가하는 것입니다 (완전한 예라고 가정). 아무도 당신의 마음을 읽을 수 없습니다 - 당신의 목표가 다른 가치 (다른 옵션이 하나뿐입니다)를 설정하는 것이라면, 그것을 성취 할 방법을 결정해야합니다. 기본 제약 조건을 변경하거나 저장 프로 시저를 변경하십시오. – SMor