[SQL Angeles] 2017-01-31 LA 한인 SQL Server 스터디 모임

[SQL Angeles] 2017-01-31 LA 한인 SQL Server 스터디 모임

 

SQL Angeles 커뮤니티는 정기적으로 화요일 8PM ~ 10PM (2시간) 스터디를 진행하며(장소 및 시간은 공식 홈페이지를 통해 공지 합니다.) SQL Server를 함께 공부하고 다양한 IT 트렌드를 공유하는 기술 및 네트워크를 공유하는 모임 입니다. SQL Angeles 스터디에 참여하고 싶은 분들은 카카오톡(ID : SQLMVP), 페이스북(https://www.facebook.com/sqlmvp) 메신저, email(jevida@naver.com) 등으로 연락 주시기 바랍니다.  스터디 장소의 출입이 자유롭지 못한 관계로 반드시 사전에 협의가 되어야 합니다.

 

스터디는 회원제로 운영되며  불성실 회원의 경우 회칙에 따라 참여 또는 기타 활동이 제한될 수 있습니다.

 

오늘 스터디는 총 9명이 참석하였습니다. 시간이 지날수록 스터디 참여 인원이 계속 해서 늘어나고 있습니다. 금일 스터디에는 새로운 멤버 2명이 참석해 주셨습니다.

 

오늘의 주제는 Stored Procedure와 User define function 이었는데 발표양이 많은 관계로 2번으로 나누어 발표 하기로 하여 첫 시간으로 Stored Procedure에 대해서 살펴 보았습니다. 기본적으로 스토어드 프로시저를 만드는 방법, 사용하는 방법, 스토어드 프로시저의 제약사항 등 기초 문법부터 고급 사용방법까지 상세하게 준비해 주셨습니다. 특히 프로시저를 작성할 때 주의해야할 점, 실제 운영환경에서 사용할 때 주의해야할 점에 대해서 잘 정리해 주셨습니다.

 

 

SSMS에서 스토어드 프로시저를 생성할 때 UI를 이용할 수 있는 팁과, SSMS에서 제공하는 스토어드 프로시저 관련의 숨은 기능을 소개해 주기도 하였습니다. 특히 SQL Server 2014부터 제공되는 In-Memory OLTP 기능으로 스토어드 프로시저를 Natively compiled 과정을 거쳐서 메모리에 상주 시켜 더 빠른 기능을 수행 하는 방법에 대해서 알려주었습니다. 물론 현재 SQL Server 2016에서는 2014의 단점을 보완하여 더 많은 기능을 지원한다고 합니다.

마지막으로 스토어드 프로시저 코딩 가이드라인을 정리 하며 스터디를 마무리 하였습니다.

  • Check all parameters for valid values and return an error message if a problem exists.
  • Be sure that the parameter data types match the column data types they are compared against to avoid data type mismatches and poor query optimization.
  • Use Try…Catch logic or check the @@error system function after each SQL statement, especially insert, update, and delete, to verify that the statements executed successfully. Return a status code other than 0 if a failure occurs.
  • Be sure to comment your code so that when you or others have to maintain it, the code is self documenting.
  • Consider using a source code management system, such as Microsoft Visual Studio SourceSafe, CVS, or Subversion, to maintain versions of your stored procedure source code.
  • Avoid using select * in your stored procedure queries. If someone were to add columns to or remove columns from a table, the stored procedure would generate a different result set, which could cause errors with the applications. Specify explicit column lists in your SELECT statements.
  • When using INSERT statements in stored procedures, you should always provide the column list associated with the values being inserted. This allows the procedure to continue to work if the table is ever rebuilt with a different column order or additional columns are added to the table.
  • A stored procedure cannot directly create schemas, views, triggers, defaults, rules, aggregates, functions, or stored procedures. You can, however, execute dynamic SQL that creates the object
  • You can create tables in stored procedures. Generally, as a good practice, only temporary tables are created in stored procedures. Temporary tables created in stored procedures are dropped automatically when the procedure terminates. Global temporary tables, however, exist until the connection that created them terminates.
  • If you don’t qualify object names within a stored procedure, they default to the schema of the stored procedure. It is recommended that objects in stored procedures be fully qualified with the appropriate schema name to avoid confusion and to promote query plan reuse.
  • You cannot drop a table and re-create another table with the same name within the procedure unless you use dynamic SQL to execute a dynamically built command that creates the table.
  • A stored procedure cannot issue the USE statement to change the database context in which it is running; the database context for execution is limited to a single database. If you need to reference an object in another database, you have to fully qualify the object name with the database name in your procedure code.

 

오늘 하루도 수고 많으셨습니다. 다음 스터디 때 뵙겠습니다.

 

2017-01-31 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com

 

LA 한인 SQL 스터디 모임, LA IT 모임, DB 스터디, SQL 스터디, SQL Server, DB 스터디, LA SQL Server, sqlmvp, SQL Angeles

 

Leave a Reply

%d bloggers like this: