2013-08-19 5 views

답변

51

당신은 그것을 삭제 한 다음 그것을 생성 한 다음 SELECT INTO을 사용하여 다시 생성하려고합니다. 변경 사항 :

DROP TABLE #TMPGUARDIAN 
CREATE TABLE #TMPGUARDIAN(
LAST_NAME NVARCHAR(30), 
FRST_NAME NVARCHAR(30)) 

INSERT INTO #TMPGUARDIAN 
SELECT LAST_NAME,FRST_NAME 
FROM TBL_PEOPLE 

는 MS SQL 서버에서 당신은 SELECT INTO

5

를 사용하여 CREATE TABLE 문이없는 테이블을 만들 수 있습니다 당신은이

CREATE TABLE #TMPGUARDIAN(
LAST_NAME NVARCHAR(30), 
FRST_NAME NVARCHAR(30)) 

INSERT INTO #TMPGUARDIAN(FRST_NAME,LAST_NAME) 
SELECT LAST_NAME,FRST_NAME FROM TBL_PEOPLE 

같은 쿼리를 수정해야합니다 - 마지막 세션을 확인 모든 임시 테이블을 지우는 데 사용됩니다. 항상 끝내라. 경우에 따라 삭제하려는 동안 테이블이 없으면 오류가 발생할 수 있습니다. 에 삽입을 사용하여

DROP TABLE #TMPGUARDIAN 

피 때문에 당신이 삽입 사용하는 경우 미래에 당신이 (삽입하지 함께) 몇 가지 처리 한 후 충전 할 수있는 새 열을 추가하여 임시 테이블을 수정하려면 . 그 당시에는 동일한 방식으로 재 작업하고 설계해야합니다.

를 사용하여 테이블 변수 http://odetocode.com/articles/365.aspx

declare @userData TABLE(
LAST_NAME NVARCHAR(30), 
    FRST_NAME NVARCHAR(30) 
) 

장점 드롭 문에 대한 필요가 없습니다, 이것은 변수와 유사 할 것이기 때문이다. 범위는 실행 직후에 끝납니다.

21

나는 일반적으로이 줄을 저장 프로 시저의 시작 부분에 놓은 다음 끝에 둡니다.

#temp 테이블에 대한 "존재"확인입니다.

IF OBJECT_ID('tempdb..#MyCoolTempTable') IS NOT NULL 
begin 
     drop table #MyCoolTempTable 
end 
+1

제 경우에는 충분하지 않은 것 같습니다. 사실 동일한 선택에서 동일한 "SELECT MyField INTO #TempTable"을 두 번 쓰는 것만으로도 컴파일 오류가 발생합니다. 두 개의 select into는 서로 다른 분기에 있기 때문에 동시에 히트 될 수 없습니다. 그럼에도 불구하고 두 번 같은 것을 쓸 수는 없습니다 SELECT INTO –

+0

Select-Into를 사용하지 마십시오. 그것의 "지름길". #tempTable을 만들고 "Insert into #MyTemp Select Col1, Col2 from dbo.MyTable"구문을 사용하십시오. – granadaCoder

3

몇 번이나 (같은 작업 공간/탭) 같은 .SQL 파일에 삽입 쿼리를 작성하는 바보 같은 실수를하므로 한 번 생성 쿼리가 약간 상회하거나 이미 작성된 실행 된 삽입 쿼리를 실행할 수 있습니다 삽입 쿼리와 함께 실행을 다시 시작합니다.

두 번째로 실행되기 때문에 개체 이름 (테이블 이름)이 이미 존재하는 이유가 여기에 있습니다.

그래서 별도의 탭으로 이동하여 삽입 또는 놓기 또는 실행하려는 모든 쿼리를 작성하십시오.영업 이익은 "당신은을 사용하는 것이 문제의 객체가 저장 프로 시저가 있는지 확인한다 경우 테이블, 을 논의 동안

CREATE -- … 
-- Insert query 
INSERT INTO -- … 
0

처럼 동일한 작업 공간에있는 모든 쿼리를 이전

아니면 사용 주석 행 변경 "기능 :

ALTER PROCEDURE

당신이 요에 코드를 붙여 경우 u는 "만들기"를 "변경"으로 바꿔야 할 수도 있습니다 ... 이것은 방금 나에게 일어난 일이며 실망 스럽기 때문에 다른 누군가가 발생하기를 바랍니다.

관련 문제