[SQL] SQL 서버 내부 CLR 어셈블리 C #을
SQLSQL 서버 내부 CLR 어셈블리 C #을
나는 이런 식으로 뭔가를 생각하고있다.
-- I have a stored proc that gets a table, let it be myStoredProcTable
--FIST ENABLE DATA ACCESS
EXEC sp_serveroption 'TheServerName', 'DATA ACCESS', TRUE
--main.sql calls yStoredProcTable.sql and the calls functionAssembly
SELECT *
INTO #tmpTable
FROM OPENQUERY(SERVERNAME, 'EXEC test.dbo.myStoredProcTable 1')
-- pass the table to assembly
-- how would i pass the table to assembly code?, Is this POSSIBLE?
EXEC functionAssembly #tmpTable
------------------------------------------편집하다
대답 @faester 다음 : - 어떻게 내가 numberTOstring 일을 사용하도록 제안, 코드에서 XML을 사용하지만, 나는 XML 옵션이 여기에 최고 추측 할 수 ...
다시 말하지만, 난 정말 최선의 선택을하지 않더라도, 이렇게 ...
해결법
-
==============================
1.네, 당신은 어셈블리를 등록 할 수 있지만, 거의 성능 문제로 인해 좋은 아이디어입니다.
네, 당신은 어셈블리를 등록 할 수 있지만, 거의 성능 문제로 인해 좋은 아이디어입니다.
당신은 스칼라 값에 복잡한 숫자 계산 또는 유사한 작업을한다면 그것은 당신에게 많은 유연성을 제공 할 수 있습니다. 그러나 SQL은 기본적으로 쉽게 불일치로 실행됩니다 그래서 C #은하지 않은 문제가 남아 방향 설정되어 있는지.
당신은 또한 당신이 정적 클래스의 정적 멤버를 가져올 수 있다는 것을 알고 있어야합니다.
그러나 예를 들어 이 네임 스페이스에 수입 클래스 불가능한 것으로 보이기 때문에 의도적으로 공간이없는 -이 클래스.
public static class Math { [Microsoft.SqlServer.Server.SqlFunction] public static int Add(int a, int b) { return a + b; } [Microsoft.SqlServer.Server.SqlProcedure] public static void Void(int a, int b) { } }
그것은 서버 준비하기 위해 몇 가지 SQL을 소요하고 당신은 아마 관리 할 필요가있다.
EXEC SP_CONFIGURE 'clr enabled', 1 GO RECONFIGURE GO -- CONSIDER: DROP ASSEMBLY SqlClr GO CREATE ASSEMBLY SqlClr FROM 'pathtoassembly' WITH PERMISSION_SET = SAFE; GO SELECT * FROM sys.assemblies GO CREATE FUNCTION [MathAdd] (@a int, @b int) RETURNS INT AS EXTERNAL NAME [SqlClr].Math.[Add] GO CREATE PROCEDURE [Void] @a INT, @b INT AS EXTERNAL NAME [SqlClr].Math.[Void] GO SELECT dbo.MathAdd (1, 2) EXEC void 1, 2
다시 : 당신은 정말이 필요하다고 확신한다, 그것은 거의 좋은 아이디어입니다! (I 이메일 확인이 DNS 조회 등을 만들기 위해 한 번 사용하고 있지만, 모든 비즈니스 로직은 SQL로 작성된 시스템에서였습니다. 그리고 그 나쁜!)
몇 가지 유용한 참조 :
http://msdn.microsoft.com/en-us/library/ms189524.aspx
http://www.codeproject.com/KB/database/CLR_in_Sql_Server_2005.aspx
-
==============================
2.당신이 설명하는 정확한 기능을 수행하기 위해 SQL CLR을 사용합니다.
당신이 설명하는 정확한 기능을 수행하기 위해 SQL CLR을 사용합니다.
-
==============================
3.것이 가능하다. (그러나이 의견을 읽고).
것이 가능하다. (그러나이 의견을 읽고).
from https://stackoverflow.com/questions/6364152/clr-assembly-c-sharp-inside-sql-server by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 여러 파트 파일에 SQL 서버 테이블 내보내기 (0) | 2020.07.11 |
---|---|
[SQL] MySQL의에서 결과를 순위 때 어떻게 넥타이를 처리합니까? (0) | 2020.07.11 |
[SQL] 어떻게 분할 문자열에 문자로 SQL 서버에서 별도의 컬럼에 (0) | 2020.07.11 |
[SQL] 연속 날짜 범위를 결합 (0) | 2020.07.11 |
[SQL] 별칭을 허용 성능에 미치는 영향은 HAVING 절에 사용되는 (0) | 2020.07.11 |