직장에서 SSIS 패키지에는 가져 오기 데이터를 보관할 준비 테이블을 만드는 일부 SQL 작업이 있습니다. 나는 테이블을 만들기위한 문의 다른 형태를 볼 Itzik 벤 웨이 코 뮤니시의 T-SQL Fundamentals에서두 T-SQL 문의 차이점은 무엇입니까?
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.tbNewTable') AND type in (N'U'))
BEGIN
TRUNCATE TABLE dbo.tbNewTable
END
ELSE
BEGIN
CREATE TABLE dbo.tbNewTable (
ColumnA VARCHAR(10) NULL,
ColumnB VARCHAR(10) NULL,
ColumnC INT NULL
) ON PRIMARY
END
: 모든 문이 양식을
IF OBJECT_ID('dbo.tbNewTable', 'U') IS NOT NULL
BEGIN
DROP TABLE dbo.tbNewTable
END
CREATE TABLE dbo.tbNewTable (
ColumnA VARCHAR(10) NULL,
ColumnB VARCHAR(10) NULL,
ColumnC INT NULL
) ON PRIMARY
이 나타납니다 각각을 같은 일을 할 수 있습니다. 실행 후 dbo 스키마에 tbNewTable이라는 빈 테이블이 있습니다.
둘 사이에 실용적이거나 이론적 인 차이점이 있습니까? 그들이 갖는 의미는 무엇입니까?
임시 테이블은 SQL Server에서 aspcific 의미를 가지며 이러한 테이블 형식이 아닙니다. 스테이징 테이블이라고 불러야합니다. temp 테이블은 정의에 따라 temp db에 있으며 # 또는 ##로 시작합니다. – HLGEM
좋은 지적, HLGEM. 나는 그것을 더 명확하게하기 위해 그것을 편집했다. –