개발하는 월퐁잉
놀면서 쉬면서 코딩 하기
개발하는 월퐁잉
전체 방문자
오늘
어제
  • 분류 전체보기
    • DBMS
      • DBeaver
      • HeidiSQL
      • MSSQL
      • MYSQL
    • Cloud
      • Azure
      • AWS
    • 업무
      • Slack
      • IT-Tip
      • 산업안전교육
    • Vue
    • HTML
    • Java
    • Gradle
    • IntelliJ
    • GIT

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 미러링
  • 대한산업안전협회
  • DBeaver
  • Vue.js
  • vue
  • Trigger
  • ALTER TABLE
  • Eclipse
  • Query
  • IntelliJ
  • MySQL
  • 산업안전보건교육
  • dba
  • MSSQL
  • npm install
  • 근로자정기교육
  • SQL Server
  • GIT
  • 인텔리제이
  • 권한설정

최근 댓글

최근 글

티스토리

250x250
250x250
hELLO · Designed By 정상우.
개발하는 월퐁잉

놀면서 쉬면서 코딩 하기

[MSSQL] 테이블 전체 삭제 하는 쿼리
DBMS/MSSQL

[MSSQL] 테이블 전체 삭제 하는 쿼리

2022. 8. 5. 15:12
728x90



DECLARE	@QUERY				NVARCHAR(MAX)
		,@TABLENAME			NVARCHAR(MAX)
		,@FOREIGNKEYNAME	NVARCHAR(MAX)
		,@KEYTYPE			NVARCHAR(MAX)

DECLARE FOREIGNKEY_CURSOR CURSOR
FOR 

    /*****[외래키 걸린것만 삭제 할때 ]**************************************************/
    SELECT	FKN.CONSTRAINT_NAME AS FK_Name
            ,FKT.TABLE_NAME AS FK_Table
    FROM	INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS FKN
        INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FKT
            ON FKN.CONSTRAINT_NAME = FKT.CONSTRAINT_NAME
    WHERE	FKT.TABLE_NAME  NOT  LIKE 'BD_%'
    ORDER BY FKT.TABLE_NAME, FKN.constraint_name
    /***********************************************************************************/


SELECT CONSTRAINT_NAME,TABLE_NAME,CONSTRAINT_TYPE
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE	TABLE_NAME  NOT  LIKE 'BD_%' 
ORDER BY TABLE_NAME, constraint_name  

OPEN FOREIGNKEY_CURSOR

FETCH NEXT FROM FOREIGNKEY_CURSOR
INTO @FOREIGNKEYNAME, @TABLENAME,@KEYTYPE

WHILE ( @@FETCH_STATUS = 0 )
    BEGIN
		IF @KEYTYPE='FOREIGN KEY'
		BEGIN
			/*****[외래키 해제]*****************************************************************/
			SET @QUERY = 'ALTER TABLE ['+ @TABLENAME + '] NOCHECK CONSTRAINT ['+ @FOREIGNKEYNAME + ']'
			EXECUTE(@QUERY);
			PRINT 'QUERY 1 - ' + @QUERY
			/***********************************************************************************/

			/*****[데이터 삭제]*****************************************************************/
			SET @QUERY = 'DELETE FROM  '+@TABLENAME
			EXECUTE(@QUERY);
			PRINT 'QUERY 2 - ' + @QUERY
			/***********************************************************************************/

			/*****[외래키 설정]*****************************************************************/
			SET @QUERY = 'ALTER TABLE [' + @TABLENAME + '] CHECK CONSTRAINT [' + @FOREIGNKEYNAME + ']'
			EXECUTE(@QUERY);
			PRINT 'QUERY 3 - ' + @QUERY
			/***********************************************************************************/
		END
		ELSE
		BEGIN
			/*****[데이터 삭제]*****************************************************************/
			SET @QUERY = 'DELETE FROM  '+@TABLENAME
			EXECUTE(@QUERY);
			PRINT 'QUERY 4 - ' + @QUERY
			/***********************************************************************************/
		END
   
    FETCH NEXT FROM FOREIGNKEY_CURSOR
    INTO @FOREIGNKEYNAME, @TABLENAME,@KEYTYPE
END

CLOSE FOREIGNKEY_CURSOR
DEALLOCATE FOREIGNKEY_CURSOR

 

 

728x90
반응형
저작자표시 (새창열림)

'DBMS > MSSQL' 카테고리의 다른 글

[MSSQL] MS SQL 로그인 계정 생성  (0) 2022.08.10
[MSSQL] mssql 누락된 인덱스  (0) 2022.08.09
[MSSQL] MSSQL 버전 확인  (0) 2022.08.05
[MSSQL] Database Mirroring 구축  (0) 2022.08.05
[MSSQL] 권장 메모리 설정  (0) 2022.08.05
    'DBMS/MSSQL' 카테고리의 다른 글
    • [MSSQL] MS SQL 로그인 계정 생성
    • [MSSQL] mssql 누락된 인덱스
    • [MSSQL] MSSQL 버전 확인
    • [MSSQL] Database Mirroring 구축
    개발하는 월퐁잉
    개발하는 월퐁잉
    놀멍 쉬멍 개발하는 퐁 - 기억은 사라지지만 기록은 남는다

    티스토리툴바