2013-03-18 2 views
0

이 쿼리가 있는데 잘못된 구문 오류가 ')'(CREATE TABLE의 끝) 및 'END'근처에 나타납니다.IF ... 시작 ... END

이제는 BEGIN 및 END 줄을 제거해도 문제가 없는데, 무엇이 잘못되어 있는지 완전히 확신 할 수 없습니다.

참고 :이 항목은 이후에 더 많은 항목이 있으며 그 앞에 오는 항목이 많기 때문에 완성 된 제품이 아닙니다. 이것은 훨씬 더 큰 프로젝트의 한 부분 일 뿐이지 만이 부분은 상당히 독립적이며이 쿼리의 어떤 것도 [ARCSCON] 테이블의 존재 이외의 다른 부분에 의존하지 않습니다.

누구든지 내가 뭘 잘못하고 있다고 말할 수 있습니까? @LittleBoobyTables으로

IF EXISTS(SELECT * FROM sys.objects 
    WHERE OBJECT_ID = OBJECT_ID(N'[dbo].[ARCSCON]')) 
BEGIN 

CREATE TABLE [tempSAItems](  
      [Id] int identity(44444,1), 
      [Name] nvarchar(55), 
      [Type] nvarchar(50) DEFAULT 'Service Agreement', 
      [Inactive] bit DEFAULT '0', 
      [Purchased] bit DEFAULT '0', 
      [MSDS] bit DEFAULT '0', 
      [IncomeAccountID] int DEFAULT '7', 
      [LaborCoverd] bit DEFAULT '0', 
      [PartsCoverd] bit DEFAULT '0', 
      [LifeTime] bit DEFAULT '0', 
      [TravelCoverd] bit DEFAULT '0', 
      [NumVisits] int, --[DURATION] 
      [bLaborItem] bit DEFAULT '0', 
      [bDirectCost] bit DEFAULT '0', 
      [bAddToSales] bit DEFAULT '0', 
      [sCostingMethod] nvarchar(50) DEFAULT 'Average Cost') 
GO 

INSERT INTO [tempSAItems]([Name]) 
SELECT DISTINCT [SCHEDTYPE] 
FROM [ARCSCON] 
GO 


END 
+3

중간 'GO'; 처리 그룹의 끝을 나타내지 만 IF 문 중간에 처리 그룹이 있습니다. – LittleBobbyTables

답변

1

중간에 쓰여진 Go 그냥 없애 댓글을 달았습니다.

IF EXISTS(SELECT * FROM sys.objects 
    WHERE OBJECT_ID = OBJECT_ID(N'[dbo].[ARCSCON]')) 
BEGIN 

CREATE TABLE [tempSAItems](  
      [Id] int identity(44444,1), 
      [Name] nvarchar(55), 
      [Type] nvarchar(50) DEFAULT 'Service Agreement', 
      [Inactive] bit DEFAULT '0', 
      [Purchased] bit DEFAULT '0', 
      [MSDS] bit DEFAULT '0', 
      [IncomeAccountID] int DEFAULT '7', 
      [LaborCoverd] bit DEFAULT '0', 
      [PartsCoverd] bit DEFAULT '0', 
      [LifeTime] bit DEFAULT '0', 
      [TravelCoverd] bit DEFAULT '0', 
      [NumVisits] int, --[DURATION] 
      [bLaborItem] bit DEFAULT '0', 
      [bDirectCost] bit DEFAULT '0', 
      [bAddToSales] bit DEFAULT '0', 
      [sCostingMethod] nvarchar(50) DEFAULT 'Average Cost') 
--GO 
^Here 

INSERT INTO [tempSAItems]([Name]) 
SELECT DISTINCT [SCHEDTYPE] 
FROM [ARCSCON] 
GO 


END 
+0

이런 종류의 작업은 있지만 새로운 문제를 제시했습니다. GO를 제거하는 것이 해결책 이었지만 CREATE TABLE이 작성하려고하는 테이블을 사용하려고 시도하기 때문에 INSERT INTO 문이 더 이상 작동하지 않는 문제가 발생했습니다. 나는 IF, BEGIN, END의 사용법을 오해하고 있다고 생각한다. (아직도 배우고있다.) 그 사이에 많은 것을 넣으려고했으나 할 수 없을 수도 있습니다. –