::NPTEAM:: Network Programer Team

검색 :
RSS 구독 : 글 / 댓글 / 트랙백 / 글+트랙백

[Python] ExecuteCmd 커맨드 명령어 실행하기

Python에서 Command 명령어 실행하는 예제
import os
import subprocess

def ExecuteCmd(self, strCmd):
    print "[ExecuteCmd] %s" % (strCmd)
    pipe = subprocess.Popen(strCmd,
        shell=True,
        stdin=subprocess.PIPE,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE)

    pipe.stdin.close()

    retOutputList = []

    while( pipe.poll() is None ):
        out = pipe.stdout.readline()
        if( out != '' ):
            print out
            retOutputList.append(out)

    retCode = pipe.poll()
    return (retCode, retOutputList)
	
def main():
	(retCode, stdout) = ExecuteCmd('svn --version')
	print 'retCode : ' + str(retCode)
	print stdout
		
if __name__ == "__main__":
	try:
		main()
	except os.error, err:
		print str(err)
2012/01/19 11:41 2012/01/19 11:41

맨 위로

[MS-SQL] DB Schema 모두 제거하기

2012/01/10 02:21, 글쓴이 TTF
DB에서 Table, Procedure, View를 모두 삭제하는 Query 입니다.
맨 윗줄의 Use [DBName]을 수정하시고 사용하세요.
USE [DBName]
GO

DECLARE @SysObjectCount INT
SELECT @SysObjectCount = COUNT('') FROM SYSOBJECTS WITH(NOLOCK)
    
-- Drop Views
BEGIN
     DECLARE @IndexForView INT
     SET @IndexForView = 0

     WHILE ( @IndexForView < @SysObjectCount )
     BEGIN
        DECLARE @VIEW_NAME VARCHAR(MAX)
        DECLARE VIEW_LIST CURSOR FOR
            SELECT NAME FROM SYSOBJECTS O2 WHERE XTYPE='V'
        OPEN VIEW_LIST
        FETCH NEXT FROM VIEW_LIST INTO @VIEW_NAME 
        WHILE @@FETCH_STATUS = 0
        BEGIN
            PRINT 'DROPPING VIEW '+@VIEW_NAME
            EXEC ('DROP VIEW '+@VIEW_NAME) 
            FETCH NEXT FROM VIEW_LIST INTO @VIEW_NAME
        END 
        CLOSE VIEW_LIST
        DEALLOCATE VIEW_LIST
        SET @IndexForView = @IndexForView + 1
     END
END

-- Drop Procedures
BEGIN
     DECLARE @IndexForProcedure INT
     SET @IndexForProcedure = 0
    
     WHILE ( @IndexForProcedure < @SysObjectCount )
     BEGIN
        DECLARE @PROCEDURE_NAME VARCHAR(MAX)
        DECLARE PROCEDURE_LIST CURSOR FOR
            SELECT NAME FROM SYSOBJECTS O2 WHERE XTYPE='P'
        OPEN PROCEDURE_LIST
        FETCH NEXT FROM PROCEDURE_LIST INTO @PROCEDURE_NAME 
        WHILE @@FETCH_STATUS = 0
        BEGIN
            PRINT 'DROPPING PROCEDURE '+@PROCEDURE_NAME
            EXEC ('DROP PROCEDURE '+@PROCEDURE_NAME) 
            FETCH NEXT FROM PROCEDURE_LIST INTO @PROCEDURE_NAME
        END 
        CLOSE PROCEDURE_LIST
        DEALLOCATE PROCEDURE_LIST
        SET @IndexForProcedure = @IndexForProcedure + 1
     END
END

-- Drop Tables
BEGIN
     DECLARE @IndexForTable INT
     SET @IndexForTable = 0
     WHILE ( @IndexForTable < @SysObjectCount )
     BEGIN
        DECLARE @TABLE_NAME VARCHAR(MAX)
        DECLARE TABLE_LIST CURSOR FOR
            SELECT NAME FROM SYSOBJECTS O2 WHERE XTYPE='U' AND
               NOT EXISTS (
                    SELECT * FROM SYSFOREIGNKEYS K
                       JOIN SYSCOLUMNS C1 ON (K.FKEYID = C1.ID AND C1.COLID=K.FKEY)
                       JOIN SYSCOLUMNS C2 ON (K.RKEYID = C2.ID AND C2.COLID=K.RKEY)
                    WHERE C2.ID = O2.ID AND C1.ID <> O2.ID
               )
        OPEN TABLE_LIST
        FETCH NEXT FROM TABLE_LIST INTO @TABLE_NAME 
        WHILE @@FETCH_STATUS = 0
        BEGIN
            PRINT 'DROPPING TABLE '+@TABLE_NAME
            EXEC ('DROP TABLE '+@TABLE_NAME) 
            FETCH NEXT FROM TABLE_LIST INTO @TABLE_NAME
        END 
        CLOSE TABLE_LIST
        DEALLOCATE TABLE_LIST
        SET @IndexForTable = @IndexForTable + 1
     END
END
2012/01/10 02:21 2012/01/10 02:21

맨 위로