하 드 디스크 를 장기 적 으로 손상 시 키 는 6 가지 상용 소프트웨어

SQL 사용 Server 2005 CLR 저장 프로시저      SQL Server 2005 의 새로운 특성 은 바로.net 을 통합 시 켰 다 는 것 이다. 라 고 외 쳤 다.통합 CLR 의 장점 은 개발 자가 익숙 한.net 을 편리 하 게 사용 할 수 있다 는 것 이다. 언어 는 저장 프로 세 스,트리거,사용자 정의 함수 등 을 만 듭 니 다.본 논문 에서 C\#로 저장 과정 을 만 들 것 입 니 다.왜 T-SQL 로 저장 과정 을 만 들 지 않 습 니까?T-SQL 이 지금까지 발전 한 지 오래 되 었 기 때문에 특정한 상황 에서 한계 가 있다.예 를 들 어 T-SQL 은 대상 을 대상 으로 하 는 것 이 아니 라 일부 문법 이 너무 복잡 하 다 는 등 이다.대상 지향.NET 을 사용 하면 저장 프로 세 스 등 데이터 대상 을 언어 로 작성 할 때.net 때문에 언어 가 강 한 특성 때문에 더욱 건장 하고 우수한 저장 과정 을 쓸 수 있다.SQL 을 통 해 Server 2005.NET 로 작 성 된 저장 과정 은.NET 언어 로 일반 응용 프로그램 을 작성 하 는 것 과 마찬가지 로 모두 managed 입 니 다. code。이외에 CLR 프로 그래 밍 언어 제공 T-SQL 에 없 는 풍부 한 구조(예 를 들 어 배열 과 목록 등)....과 T-SQL(해석 언어)에 비해 CLR 프로 그래 밍 언어 가 더 좋 은 성능 을 가 진 이 유 는 위탁 관리 코드 가 컴 파일 되 었 기 때문이다.산술 계산,문자열 처리,조건 논리 등 과 관련 된 조작 에 있어 서 위탁 관리 코드 의 성능 이 좋 을 수 있 습 니 다. T-SQL 수량 급본 논문 에서 T-SQL 로 저장 과정 을 작성 할 수 있 지만 문 제 를 설명 하기 위해 C\#로 저장 과정 을 작성 합 니 다.절 차 는 다음 과 같다.    우선 비 주 얼 열기 Studio 2005 beta 2.c\#언어 를 선택 하고 database 프로젝트 를 새로 만 듭 니 다.sqlprocject 1 이 라 고 합 니 다.이때,비 주 얼 Studio 2005 beta 2.어떤 데이터 베 이 스 를 연결 해 야 하 는 지 물 어 볼 것 이다.우 리 는 pubs 라 는 데이터 베 이 스 를 사용 하기 때문에 우 리 는 기계 이름 이 로 컬 기계 라 는 것 을 선택 하고 sql 의 검증 방식 을 설정 하여 pubs 데이터 베 이 스 를 선택 하면 됩 니 다.(SQL Server 2005 년 에 pubs 와 northwind 데이터 베 이 스 는 더 이상 SQL 이 아니다. Server 2005 자체 데이터베이스 입 니 다.http://go.microsoft.com/fwlink/?LinkId=31995가다이 어 공사 가 끝 난 후 추가 항목 을 선택 하고 store 를 선택 하 십시오. procedure 저장 과정 을 authors.cs 로 명명 하고 확인 을 누 르 고 다음 코드 를 입력 하 십시오.    using System;    using System.Data;    using System.Data.Sql;    using System.Data.SqlTypes;    using Microsoft.SqlServer.Server;    using System.Data.SqlClient;    public partial class StoredProcedures    {     [Microsoft.SqlServer.Server.SqlProcedure]     public static void GetAuthors()     {      SqlPipe sp = SqlContext.Pipe;      using (SqlConnection conn = new SqlConnection("context connection=true"))      {       conn.Open();       SqlCommand cmd = new SqlCommand();       cmd.CommandType = CommandType.Text;       cmd.Connection = conn;       cmd.CommandText = "Select DatePart(second, GetDate()) " + " As timestamp,* from authors";       SqlDataReader rdr = cmd.ExecuteReader();       sp.Send(rdr);      }     }     [SqlProcedure]     public static void GetTitlesByAuthor(string authorID)     {      string sql = "select T.title, T.price, T.type, " + "T.pubdate from authors A" +         " inner join titleauthor TA on A.au_id = TA.au_id " +         " inner join titles T on TA.title_id = T.title_id " +         " where A.au_id = '" + @authorID + "'";      using (SqlConnection conn = new SqlConnection("context connection=true"))      {       conn.Open();       SqlPipe sp = SqlContext.Pipe;       SqlCommand cmd = new SqlCommand();       cmd.CommandType = CommandType.Text;       cmd.Connection = conn;       cmd.CommandText = sql;       SqlParameter paramauthorID = new SqlParameter("@authorID", SqlDbType.VarChar, 11);       paramauthorID.Direction = ParameterDirection.Input;       paramauthorID.Value = authorID;       cmd.Parameters.Add(paramauthorID);       SqlDataReader rdr = cmd.ExecuteReader();       sp.Send(rdr);      }     }    }

좋은 웹페이지 즐겨찾기