DB 를 분리하는 임무를 수행중.
분리 후 정상 동작을 위해 기존 SP 중, 옮겨진 테이블을 참조 것을 모두 찾아야 한다.
찾아서 네임스페이스 경로를 모두 새로 연결한 linked server 이름으로 바꿔줘야 한다.
sp 내부에는 참조들은 vs2010 Db project 로 찾으면 찾아지는 듯 한데,
문제는 string 으로 결합한 동적 쿼리로 된 sp 들이다. 이 놈들은 이 방법으로 못 찾는듯하다.
구글 검색으로 string 검색으로 내부를 뒤지는 쿼리를 찾았다.
아래 코드 중 ` 를 ' 로 바꿔야 한다.
테스트 서버를 대상으로 돌렸더니 잘 나온다. 그런데...결과가 1500 개 이상 나왔다.
언제 다 고치지?
SELECT DISTINCT o.name AS ObjectName,
CASE
o.xtype
WHEN ‘C’ THEN ‘CHECK
constraint’
WHEN ‘D’ THEN ‘Default or DEFAULT constraint’
WHEN ‘F’ THEN
‘FOREIGN KEY constraint’
WHEN ‘FN’ THEN ‘Scalar function’
WHEN ‘IF’ THEN
‘In-lined table-function’
WHEN ‘K’ THEN ‘PRIMARY KEY or UNIQUE
constraint’
WHEN ‘L’ THEN ‘Log’
WHEN ‘P’ THEN ‘Stored procedure’
WHEN
‘R’ THEN ‘Rule’
WHEN ‘RF’ THEN ‘Replication filter stored procedure’
WHEN
‘S’ THEN ‘System table’
WHEN ‘TF’ THEN ‘Table function’
WHEN ‘TR’ THEN
‘Trigger’
WHEN ‘U’ THEN ‘User table’
WHEN ‘V’ THEN ‘View’
WHEN ‘X’ THEN
‘Extended stored procedure’
ELSE o.xtype
END AS ObjectType,
ISNULL( p.Name, ‘[db]‘) AS Location
FROM syscomments
c
INNER JOIN sysobjects o ON c.id=o.id
LEFT JOIN sysobjects p ON
o.Parent_obj=p.id
WHERE c.text LIKE ‘%code/SQL command/any text to search
for%’
ORDER BY Location, ObjectName
Note: this CANNOT be used to find information in tables – that’s something
competely different.
댓글을 달아 주세요
감사합니다 공유 반환 방문을 환영합니다
너무 오랜만의 여유신가요. 반년도 넘게 포스팅도 안하시궁 ^^