2009-04-21 4 views
1

누구나 LINQ to SQL을 사용하여 저장 프로 시저의 텍스트에 액세스하는 방법을 알고 있습니까? 저장 프로 시저 집합을 감사하여 모든 저장소에 공통 코드가 들어 있는지 확인하고 싶습니다.LINQ to SQL을 사용하여 저장 프로 시저 읽기

LINQ to SQL 데이터 컨텍스트를 통해 이들을 여는 좋은 방법이 있어야하지만 어떻게 느껴지는 것처럼 느껴집니다. 어떤 제안?

+0

왜 LINQ를 통해이 작업을 수행합니까? –

+0

LINQ를 사용하여이 프로젝트의 다른 작업을 수행하고 있기 때문에 동일한 연결을 통해 모든 것을 처리 할 수 ​​있다면 내 삶이 훨씬 쉬워집니다. 나는 LINQ가 이것을 처음부터 다시하는 이상적인 방법이 아니라는 것에 동의한다. –

답변

5

당신은이 라인을 따라 뭔가 시도 할 수 :

string results = db.ExecuteQuery<string> 
(@"EXEC sp_helptext '{0}'", procedure_name); 

또는 당신이 쿼리를 사용 LINQ :

SELECT text 
FROM syscomments 
WHERE id = (SELECT id FROM sysobjects WHERE name = 'procedure_name') 
ORDER BY colid 
+2

참고로, executequery를 매개 변수화 할 수 있습니다. (@ "EXEC sp_helptext {0}", procedureName); –

+0

고마워, 그걸 몰랐어. 코드 – edosoft

+0

업데이트 - 많은 감사합니다. –

2

난 그 이상적으로 LINQ - 투 -에 적합한 작업입니다 확실하지 않다 SQL -하지만 아마도 syscomments과 같은 것으로부터 텍스트를 얻을 수는 있습니다. 그러나 이것은 난독 화 될 수 있습니다. 개인적으로 데이터베이스 대신 코드 저장소를 다시 테스트 할 것입니다.

3

SQL Server를 사용하고있는 것 같습니다.

저장 프로 시저의 텍스트를 검색하려면 sp_helptext 시스템 저장 프로 시저를 실행해야합니다.

Linq에서 저장 프로 시저를 실행하는 방법을 알고 싶으면 this을 참조하십시오.

관련 문제