2017-11-09 3 views
0

처음부터 새 SQL Server Azure DB를 시작합니다. 강력한 소스 컨트롤을 설정하여 모든 테이블을 만드는 방법을 신중히 알고 싶습니다.소스에서 T-SQL 테이블 생성

테이블이 존재하는지 확인하고 내 CREATE TABLE 문만 실행하는 것이 가장 좋은 방법은 무엇입니까? 테이블 존재 여부를 확인하는 저장 프로 시저에 동적 SQL을 전달하는 작업을하고 있지만 제한적입니다. 이 작업을 수행하는 데 선호되는 방법이 있어야합니다. 모든 검색어 앞에 서술 할 수있는 의미는 다음과 같습니다.

IF NOT EXISTS (SELECT * 
       FROM sys.objects 
       WHERE object_id = OBJECT_ID(N'[dbo].j[myTable]') AND type in(N'U')) 
BEGIN 
    CREATE TABLE myTable(....) 
END 

꽤 반복적입니다. 단순히

답변

0

더 :

IF NOT EXISTS (SELECT * FROM sys.tables WHERE Name = N'myTable') 
    CREATE TABLE myTable ....... 

아이디어는 다음 이상을 사용하는 대신 모든 것을 포괄하는 sys.objects의,sys.tables 카탈로그 뷰를 집중 - 당신이 그 오히려 직관적 type 값을 기억할 필요가 없습니다 ... .. -하지만 그렇습니다. 입니다. 이런 종류의 코드를 수행하는 가장 안전한 방법입니다.

SQL 서버 2016로, 당신은 또한

DROP TABLE IF EXISTS myTable; 
CREATE TABLE myTable ....... 

명령을 사용할 수 있습니다 (새입니다 - 여기를 참조하십시오 https://blogs.msdn.microsoft.com/sqlserverstorageengine/2015/11/03/drop-if-exists-new-thing-in-sql-server-2016/)