mssql (4) 썸네일형 리스트형 [MSSQL 2000]테이블명으로 PK 컬럼 반환하기 SELECTC.NAME FROMSYSOBJECTS O INNER JOIN SYSINDEXES I ON (O.ID = I.ID) INNER JOIN SYSCOLUMNS C ON (I.ID = C.ID) WHEREO.NAME = '테이블명' AND (I.STATUS & 0X800) = 0X800 --PK를 의미하는거 같다. AND (C.NAME = INDEX_COL (@TABLENAME, I.INDID, 1) OR C.NAME = INDEX_COL (@TABLENAME, I.INDID, 2) OR C.NAME = INDEX_COL (@TABLENAME, I.INDID, 3) OR C.NAME = INDEX_COL (@TABLENAME, I.INDID, 4) OR C.NAME = INDEX_COL (@TABL.. [MSSQL 2000]실행중인 프로세스만 조회하기(커서 사용,실행중 쿼리문 포함) 쿼리는 길지만 상당히 핵심 부분은 상당히 간단한 쿼리다. sysprocesses 테이블에서 정보 가져오는 부분이 핵심인데 sp_who 쿼리를 조금 변형한 것에 불과하다. 여기에 기존 sp_who에서는 명령이 update중인지 insert중인지 그런 형식으로만 보여주기에, 실제로 해당 프로세스에 보냈던 명령을 같이 보여주기 위해서 dbcc inputbuffer()하고 연결시켜주는 부분을 추가하였다. 그러나 이 부분을 추가하기 위해서 어쩔 수 없이 cursor를 쓰게 되었다. 역시 cursor가 들어가면 괜히 쿼리가 길어지고 복잡해보인다..ㅋ ㅋ ---------------------------------------------------------------- --현재 돌고 있는 놈들의 리스트를 뽑아낸다. .. [MSSQL 2000] 현재 동작중인 SPID만 조회하기 SELECT SPID ,ECID ,STATUS ,LOGINAME=RTRIM(LOGINAME) ,HOSTNAME ,BLK=CONVERT(CHAR(5),BLOCKED) ,DBNAME = CASE WHEN DBID = 0 THEN NULL WHEN DBID 0 THEN DB_NAME(DBID) END ,CMD FROM MASTER.DBO.SYSPROCESSES WITH (NOLOCK) WHERE SPID > 50 --시스템이 사용하는 프로세스는 조회할 필요가 없다. AND SPID @@SPID --자신의 SPID는 조회할 필요가 없다. AND UPPER(CMD) 'AWAITING COMMAND' [MSSQL 2005]사용자 계정 권한 수정 2005의 SQL Server Management Studio에서 권한 설정하다가 보면 오류나는 경우가 너무 많다. (바보같은 프로그램이다.. 2000의 EM이 훨씬 사용하기 편한거 같다.) 아무튼 다음 구문을 통해서 사용자 계정의 권한을 수정하자. 사용자 계정을 ABCDEFG라고 하면, -- 이 구문으로 소유한 오브젝트가 있는지 확인 SELECT * FROM SYS.OBJECTS WHERE SCHEMA_ID=SCHEMA_ID('ABCDEFG') -- SCHEMA 삭제 DROP SCHEMA ABCDEFG -- 유저 삭제 DROP USER ABCDEFG -- UI에서 새로운 유저를 생성한다. 보안 > 사용자 보안 > 스키마 마지막 단계에서는 오류를 안 내더군요..ㅋㅋ 이전 1 다음