sybase enterprise 12

510
2: Sybase ® Adaptive Server ® Enterprise 12.5

Upload: others

Post on 18-Dec-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

�� ��� � 2�: ��

Sybase® Adaptive Server® Enterprise

12.5

�� �� : 32156-01-1250-01

�� �� : 2001� 6�

Copyright © 1989-2001 by Sybase, Inc. All rights reserved.

� � �� Sybase ������ �� ������ �� �� ! " ��#�$ %& �'�� � � �( )*� +,-% ./0 12 3��� 4*567. � � �( )*8 9. :0;� +,< = >?67. � � ��� @AB������� 9*C DEB� FG-H IJ DE KL� MN�O 9*BP$ Q9R = >?67.

ST � �U V�BWX YZ[ \$7 ]^8 ._ (800) 685-8225$ `� (617) 229-9845 Customer Fulfillment a�� �(Bbcd.

YZ 9*C DEe f8 %g ZT( ]^8 h( `� �� Customer Fulfillment a�� ijBk = >?67. %g ]^8 IJ ZT( Sybase 09 l� #mno� ijBbcd. npq�r� �%4s ����� tu v��O FG567. � w#x8 Sybase, Inc.( 9. �X y(;� .4, %D4, =y4, z{4 |( �}� =~�$ �� QF, .�, ��< = ;?67.

Sybase, the Sybase logo, ADA Workbench, Adaptable Windowing Environment, Adaptive Component Architecture, Adaptive Server, Adaptive Server Anywhere, Adaptive Server Enterprise, Adaptive Server Enterprise Monitor, Adaptive Server Enterprise Replication, Adaptive Server Everywhere, Adaptive Server IQ, Adaptive Warehouse, AnswerBase, Anywhere Studio, Application Manager, AppModeler, APT Workbench, APT-Build, APT-Edit, APT-Execute, APT-FORMS, APT-Translator, APT-Library, Backup Server, ClearConnect, Client-Library, Client Services, Data Pipeline, Data Workbench, DataArchitect, Database Analyzer, DataExpress, DataServer, DataWindow, DB-Library, dbQueue, Developers Workbench, Direct Connect Anywhere, DirectConnect, Distribution Director, E-Anywhere, E-Whatever, Embedded SQL, EMS, Enterprise Application Server, Enterprise Application Studio, Enterprise Client/Server, Enterprise Connect, Enterprise Data Studio, Enterprise Manager, Enterprise SQL Server Manager, Enterprise Work Architecture, Enterprise Work Designer, Enterprise Work Modeler, EWA, Gateway Manager, ImpactNow, InfoMaker, Information Anywhere, Information Everywhere, InformationConnect, InternetBuilder, iScript, Jaguar CTS, jConnect for JDBC, KnowledgeBase, MainframeConnect, Maintenance Express, MAP, MDI Access Server, MDI Database Gateway, media.splash, MetaWorks, MySupport, Net-Gateway, Net-Library, NetImpact, ObjectConnect, ObjectCycle, OmniConnect, OmniSQL Access Module, OmniSQL Toolkit, Open Client, Open ClientConnect, Open Client/Server, Open Client/Server Interfaces, Open Gateway, Open Server, Open ServerConnect, Open Solutions, Optima++, PB-Gen, PC APT Execute, PC DB-Net, PC Net Library, Power++, power.stop, PowerAMC, PowerBuilder, PowerBuilder Foundation Class Library, PowerDesigner, PowerDimensions, PowerDynamo, PowerJ, PowerScript, PowerSite, PowerSocket, Powersoft, PowerStage, PowerStudio, PowerTips, Powersoft Portfolio, Powersoft Professional, PowerWare Desktop, PowerWare Enterprise, ProcessAnalyst, Report Workbench, Report-Execute, Replication Agent, Replication Driver, Replication Server, Replication Server Manager, Replication Toolkit, Resource Manager, RW-DisplayLib, RW-Library, S Designor, S-Designor, SDF, Secure SQL Server, Secure SQL Toolset, Security Guardian, SKILS, smart.partners, smart.parts, smart.script, SQL Advantage, SQL Anywhere, SQL Anywhere Studio, SQL Code Checker, SQL Debug, SQL Edit, SQL Edit/TPU, SQL Everywhere, SQL Modeler, SQL Remote, SQL Server, SQL Server Manager, SQL SMART, SQL Toolset, SQL Server/CFT, SQL Server/DBM, SQL Server SNMP SubAgent, SQL Station, SQLJ, STEP, SupportNow, Sybase Central, Sybase Client/Server Interfaces, Sybase Financial Server, Sybase Gateways, Sybase MPP, Sybase SQL Desktop, Sybase SQL Lifecycle, Sybase SQL Workgroup, Sybase User Workbench, SybaseWare, Syber Financial, SyberAssist, SyBooks, System 10, System 11, System XI (logo), SystemTools, Tabular Data Stream, Transact-SQL, Translation Toolkit, UNIBOM, Unilib, Uninull, Unisep, Unistring, URK Runtime Kit for UniCode, Viewer, Visual Components, VisualSpeller, VisualWriter, VQL, WarehouseArchitect, Warehouse Control Center, Warehouse Studio, Warehouse WORKS, Watcom, Watcom SQL, Watcom SQL Server, Web Deployment Kit, Web.PB, Web.SQL, WebSights, WebViewer, WorkGroup SQL Server, XA-Library, XA-Server � XP Server� Sybase, Inc.( |� �u�67.

Unicode� Unicode Logo� Unicode, Inc.( |� �u�67.

� � �� 9*� %g �� �9 � F� ��8 IJ �9( �u�P$ |� �u�67.

YZ i� �a� (� 9*, Q9 � G�� Y Z�� DE( ,� DFARS 52.227-7013( (c)(1)(ii) �[ �� �� DE(,� FAR 52.227-19(a)-(d)� c� F� ��� 4*567.

Sybase, Inc., 6475 Christie Avenue, Emeryville, CA 94608.

��

��� �������������������������������������������������������������������������������������������� ��

1 �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��

2 ��: alter database – continue................................................. 7���������� ����������������������������������������������������������������������������������������� ��

������ ������������������������������������������������������������������������������������������������ ���

�������� ���������������������������������������������������������������������������������������������� ���

������������������������������������������������������������������������������������������������������ ����������� ������ �������������������������������������������������������������������������������� ���

���������������������������������������������������������������������������������������������������������� ���

�� ��������������������������������������������������������������������������������������������������������� ���

��������� �������������������������������������������������������������������������������������������� ������ �������������������������������������������������������������������������������������������������������� ���

���� �������������������������������������������������������������������������������������������������� ���

���������������������������������������������������������������������������������������������������������� ���

���� ��!�������������������������������������������������������������������������������������������� ���

�������������� ������ ��������������������������������������������������������������������� ��������� ������������������������������������������������������������������������������������������������� ���

3 ��: create database – create schema.................................. 65���������� ����������������������������������������������������������������������������������� ���

�����"� �� ��������������������������������������������������������������������������������������� ���

����#� ������������������������������������������������������������������������������������ ���

����" ������$%&'() ����������������������������������������������������������������������� ����������#������������������������������������������������������������������������������������������ ���

���������������������������������������������������������������������������������������������������� ���

�������� �������������������������������������������������������������������������������� ���

�������� $%&'() ����������������������������������������������������������������� ����

������#*+���� ���������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������� ����

���� �������������������������������������������������������������������������������������������� ����

iii

��

���� ���� ����������������������������������������������������������������������������������� ����

4 ��: create table – create view............................................. 125������������������������������������������������������������������������������������������������� ����

�������� ������������������������������������������������������������������������������������� ����

����,�- ����������������������������������������������������������������������������������������� ����

5 ��: dbcc – delete statistics................................................. 177���� ������������������������������������������������������������������������������������������������������ ����

���������� � ������������������������������������������������������������������������������ ����

���� ������������������������������������������������������������������������������������������������� ����

������ ������������������������������������������������������������������������������������� ����

������������������������������������������������������������������������������������������������������� �������� ���� ��� ���������������������������������������������������������������������������������� ����

6 ��: disk init – disk unmirror ............................................... 203�� ������������������������������������������������������������������������������������������������������� ����

�� ����� ������������������������������������������������������������������������������������������ ����

�� ��"������������������������������������������������������������������������������������������������� ����

�� ��������������������������������������������������������������������������������������������������� ������ ����� �������������������������������������������������������������������������������������� ����

�� �� ������������������������������������������������������������������������������������������ ����

7 ��: drop database – drop view........................................... 221���������� ������������������������������������������������������������������������������������ ����

�����"� �� ���������������������������������������������������������������������������������������� ����

����" ������$%&'() ������������������������������������������������������������������������ �����������#������������������������������������������������������������������������������������������� ����

�������� ��������������������������������������������������������������������������������� ����

���������������������������������������������������������������������������������������������������� ����

���� ����������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������� ����

�������� ���������������������������������������������������������������������������������������� ����

����,�-��������������������������������������������������������������������������������������������� ����

8 ��: dump database – dump transaction............................ 233� ��������� ���������������������������������������������������������������������������������� ����

� ������ ������������������������������������������������������������������������������������ ����

9 ��: execute – group by having � ������������������������� ����#� � ������������������������������������������������������������������������������������������������ ����

iv

��

"��� ����������������������������������������������������������������������������������������������������������

�����'���������������������������������������������������������������������������������������������������

��������������������������������������������������������������������������������������������������������������

�� ���*�.���,����! ��������������������������������������������������������������������������

10 ��: if...else – kill................................................................... 295�"���� ��������������������������������������������������������������������������������������������������������� � ���������������������������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������

11 ��: load database – lock table ........................................... 309����������� �����������������������������������������������������������������������������������������

�������� ���������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������

12 ��: nullif – revoke................................................................ 329� ���"�����������������������������������������������������������������������������������������������������������

������������ �������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������

����*�! ����������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������

/ � �������� �����������������������������������������������������������������������������������

�� � ���������������������������������������������������������������������������������������������������

���#� �������������������������������������������������������������������������������������������������������"�� ����������������������������������������������������������������������������������������������

��,�0�,� ��������������������������������������������������������������������������������������������

�� ���������������������������������������������������������������������������������������������������������

� ���������������������������������������������������������������������������������������������������������

,���������������������������������������������������������������������������������������������������������

13 ��: rollback – save transaction.......................................... 369������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������

�,���� ������������������������������������������������������������������������������������������

14 ��: select – setuser............................................................. 375 ������������������������������������������������������������������������������������������������������������ � ��������������������������������������������������������������������������������������������������������������

� ������������������������������������������������������������������������������������������������������

v

��

15 ��: shutdown – writetext .................................................... 427 � ���-���������������������������������������������������������������������������������������������� ����

� ���������������������������������������������������������������������������������������������� ����

�����123��������������������������������������������������������������������������������������� ����

���� �������������������������������������������������������������������������������������������������� ���� ��������� ���� ��� ��������������������������������������������������������������������������� ����

�������������� ���� ��� ��������������������������������������������������������������� ����

����� ���� ��� �������������������������������������������������������������������������������� ����

��������������������������������������������������������������������������������������������������������� ����

-���"� �������������������������������������������������������������������������������������������������� ����-��! ���������������������������������������������������������������������������������������������� ����

-��������������������������������������������������������������������������������������������������������� ����

-���#������������������������������������������������������������������������������������������������ ����

���������������������������������������������������������������������������������������������������� ����

vi

��� ��

Adaptive Server �� ���� Sybase® Adaptive Server® Enterprise� Transact-SQL® � �� � �� ���� �����.

� 1� "Building Blocks"� ��� ��, �� � , !"#$ #%&, '(, SQLSTATE ) * Transact-SQL� "+,"- ��.��. Transact-SQL/ ��� 01234 Building Blocks� 56 �1$ �)� 56� Transact-SQL �7� 8$ 9:� ;</ �==> .��.

� 2� "�� "? �7 5� 012� Transact-SQL �@� �� AB- �C.��.

� 3� "���� "� DEF G�DH, IJ�K �� G�DH, L� �� G�DH� dbcc �� G�DH �� �� AB- �C.��. MN G�DH� Transact-SQL �7/ 012O 5����.

� 4� "��� �"? �P, ���Q�E, 01& R ST AB- H�2� DEF U�V �� �� AB- �C2W dbccdb�dbccalt ���Q�E� U�V �� AB- �C.��.

� ���� ��� � Adaptive Server � ���� MN X� Tranact-SQL 01&- �YZ� .��.

��� � � • 1� "�@"? �[ R \]� ��/ �C2� ! AdaptiveServer �@/ ^_.��. !� �@ �[/ `a24 �@Z� bc �d.��.

• 2�,� 15�ef� g% �@ �� ��� h�fi��.

jk select� l? mn� �@? o 5? pqZ� ^rs��.'- t, select �@� group by R having u$ compute u� ��h�fv wx��.

� �� Sybase Adaptive Server Enterprise ���� �y$ l� ��zwx��.

• ={ |}~1 ��E AB – � ��� ��zf �? ��ABv t wx��.

vii

45 67

�� ��E AB� �/ �= �1� wx��. � �� CD ��� �v� ��� ���^ &� �� AB- B34 SybaseTechnical Library- �12�D�.

• ={ |}~1 �� ��� – MN Adaptive Server� �� Sybase ��� �:, 6K���, �� u� �= ��.��.

• ={ |}~1 Adaptive Server Enterprise �� ��� – AdaptiveServer� jA �� 56/ �2� f� �= ��.��.

• Adaptive Server Enterprise � �� ��� – Adaptive Server P�12.5� ��� S�$ �)� S�/ f�2S �= �v� DEF ¡ 0¢, S£ ¤1 G�K¥ 9:� ;< �= ��.��.

• Transact-SQL User's Guide – �¦� ���Q�E �� SybaseL� P�§ Transact-SQL �= ��.��. � ���� ���Q�E �� DEF/ ¨y 012� 01&© ª$� «�/ .��. � ���� pubs2 R pubs3 '� ���Q�E �� ��¬ ��z wx��.

• ��� �� ��� – �P� ���Q�E �� ­® �= &¯k ��.��. � ���� °�± &�, B², 01& R DEF���Q�E- ��2� ­®$ 7&  ³, �´, Aµ ¶�- fA2� ­®� ��z wx��.

• � ��� – MN Transact-SQL �@, � , G�DH, ��� �� �= &¯k ��.��. ·� Transact-SQL '( ¸¹$ DEF U�V� A�- �C.��.

• Performance and Turning Guide – ��� ��/ 01� w¬¹Adaptive Server- º»2� ­®/ ¼g.��. � ���� �� ;</ ½� ���Q�E� �¦ 7�, ¾� �±¿, �1À ���Q�E�� Adaptive Server º» ­®, ÁEÂ� ÃD 7�,locking$ Ä�v �� ½� ;< �= ��.��.

• ���� ��� – �; Å� X� Æ�z� isql R bcp *�Adaptive Server �Ç�È G�K¥ �= ��.��.

• � � ��� – �@, � , DEF G�DH, L� DEF G�DH, ��� ��, �Ç�È� �[ R �7 ¸¹/ �É ÂS� ÊZ� �C.��. §Ë P�Ì wx��.

viii

897 :;

• ��� � !"#$ – DEF U�V R ¢¸ �¦- �E��#Z� ��.��. §Ë P�Ì wx��.

• Error Messages and Troubleshooting Guide – &½ �Í2� ) ÎDf� DEF 7� �� =8 ­®/ ��.��.

• Component Integration Services User’s Guide – Adaptive Server�CIS(Component Integration Services) S�/ 012O �Ï Sybase���Q�E R Sybase �Ð� ���Q�E Ñ82� ­®/��.��.

• Java in Adaptive Server Enterprise – Adaptive Server ���Q�E� ��� ��$ 01& A� � � Java `ÒE- �:2Ó 012� ­® �= ��.��.

• Using Sybase Failover in a High Availability System – Óv1�(HA)DEF� Sybase Failover- 012O Adaptive Server- companion�P� ��2� ­® �= ��.��.

• Using Adaptive Server Distributed Transaction Management Features –ÔÕ Ö×ØÙ ¨� ³¡� Adaptive Server DTM S�/ �� R012Ó 7�- =82� ­® �= ��.��.

• EJB Server User's Guide – EJB Server- 012O Adaptive Server� Enterprise JavaBeans- g�2Ó Æ�2� ­® �= ��.��.

• XA Interface Integration Guide for CICS, Encina, and TUXEDO –X/Open XA Ö×ØÙ ��&� �Ú Sybase DTM XA §�h�E- 012� ­® �= ��.��.

• %"& – Adaptive Server ���� 01� SÛ 1- A�.��.

• Sybase jConnect for JDBC Programmer’s Reference – jConnect forJDBC ��$ �- 012O �¦� ���Q�E �� DEF H�� ��� ܯE2� ­®/ ��.��.

• Full-Text Search Specialty Data Store User’s Guide – Adaptive ServerEnterprise ���- ÝÞ2S �2O Verity- ß� �Å àEÖ ÝÞ S�/ 012� ­® �= ��.��.

• Historical Server User’s Guide – Historical Server- 012O SQLServer� Adaptive Server� �� AB- á� ­® �= ��.��.

• Monitor Server User’s Guide – Monitor Server- 012O SQL Server� Adaptive Server� �� �¦- á� ­® �= ��.��.

ix

<= :;

• Monitor Client Library Programmer's Guide – Adaptive Server ����� ܯE2� Monitor Client Library ¤1 G�K¥/ 5�2� ­® �= ��.��.

�� �� �� �� &¯� �1? �y� Sybase Technical Library CD� Technical Library Product Manuals � 0�Ö- ��2�D�.

• Technical Library CD� �� ���� ¼GÖâv �Ú twx��. http://www.sybase.com/detail/1,3693,1010661,00.html�Product Manuals� ����� w� DynaText ãäåH- 0124 �� �� SÛ AB- æç© èéê wx��.

Technical Library- �:2Ó D52� ­®? ��� ëìf�Technical Library Installation Guide- �Ó2�D�.

• Technical Library Product Manuals � 0�Ö� Technical LibraryCD� HTML P�Z�, +í � ãäåH- 012O ܯE� wx��. �� ��� Ь Technical Documents � 0�Ö(��� Tech Info Library)� Solved Cases h�f, Sybase/PowersoftîEKï �� ðÂv ��z wx��.

Technical Library Product Manuals � 0�Ö- ­7234 http://www.sybase.com/support/manuals/� Product Manuals� �d2�D�.

��� �y? ñ ��� 01� !S® �� ��i��.

SQL? &��� �#� �i��. � ò tó w� p� ·� ò/ ô�> 2� �: �= j%k fA� õö? ÷x��. K)^ øS ç© 2S �=� � ���� MN '�� �7? �7� ùu� ��� ò� D52¬¹ �Az wx��. O) ,ÔZ� ��� u? �y ò� úS4� tOûSv z wx��. mn� �@? A BNF(Backus Naur Form) !S®/ 012O �Az wx��.

! 1? ñ ��� w� �7 7�� !S®i��.

� 1: �� � �� ���

�� ��

�� ��, �� ��, �� ��, �� �� �� � ���� �� �����.

selectsp_configure

������ ��, ��� ��, � ��, !" ��# �$%&" �����.

master ������

'( ) *+,- ./01 2� 34 5�6� 78� �$%&" �����.

select column_namefrom table_namewhere search_conditions

��9 : ;<# =>" ./?��. compute row_aggregate (column_name)

x

897 :;

• �@� �7$ MN üÙ/ ^T�� �7? �y$ lx��

sp_dropdevice [device_name]

·� O) üÙ/ 012� �@� ¡å� �y$ lx��.

select column_name from table_name where search_conditions

�7 7�� ìý�(�@)� B� þ��W #%&� ¼7&i��. ��aÅ� 01& i�- ^T���.

• Transact-SQL �@� 01 '�� �y$ l� �����.

select * from publishers

• ���� ��� ¢¸� '�� �y$ lx��.

pub_id pub_name city state ------- --------------------- ----------- -----0736 New Age Books Boston MA 0877 Binnet & Hardley Washington DC 1389 Algodata Infosystems Berkeley CA

@A BC D )>� EF� BNF � GH" I8 JK4 5�L��. MN" ��4./O PQ� @A BC�5 )>R *+2S TU��. "�KV W� X9Y"4 5�L��.

::=

Z=> [Q \]^ ��# _`: 25Rab01 ?��. MN" ��4 ./O PQ� Z=>R *+2S TU��.

{cash, check, credit}

c=> [Q \]^ ��# 25 �d4 ab2� ab *e.��. MN" ��4 ./O PQ� c=>R ./2S TU��.

[cash | check | credit]

fg� ��^ ��4 h2� ij abO( J�� k4 9l?��. ab: ��*�Q fgR mHn�o.

cash, check, credit

��p q� r"s(|)# ��^ �� Z 25i abO ( J�� k4 9l?��.

cash | check | credit

tu >(...)� gSv 7wR h2� ij ��O ( J�� k4 9l?��.

buy thing = price [cash | check | credit] [, thing = price [cash | check | credit]]...

_`: : xR E.01 2y -z4 S{01 ?��. c=> 69 e| Z S{ }G4 abO ( JU��. ~-" �� e|4 h2� ij E.O ( JU��. � E. �|g���, -z, S{ }G(ab *e)4 ./?��.

�� ��

xi

>? �@

(3 rows affected)

� ���� '�� �,Ô? ¼7&� z wx��. K)^ Transact-SQL ìý�- i�� �� �/¼7&- �D� wx��. '- tSELECT, Select, select� M d+.��.

Adaptive Server� U�V �[ * ���Q�E Å �� �/¼7&�Ô O,� Adaptive Server �:� Aµ ¶� �ä ����. p+ �Ö 7& s.� Adaptive Servier� Aµ ¶�- ���2O �/¼7&�Ô/  ¡� wx��. &¯� �1? ��� �� ���- ��2�D�.

�� �� Sybase �� f� ¦(/ �Z4 Sybase SÛ f�, b� � 1§� ��f� �{Z� �A���. �ä§ ¬���^ ���- 01=¬ 7�- =8� ÷� ¡å� Sybase SÛ f�, ·� ve� Sybase f� Ñq2�D�.

xii

1 ���� ��

� ��� Transact-SQL �7 �� 01z� �@, u R ST�¼ �= ��.��.

��! 1-1? � �� 01z� �@/ \pk ��.��.

� 1-1: Transact-SQL

�� ��

alter database ������Q O�^ ��4 ����.

alter role �(role)V d> ���� ��R X92� �(role)Q c: �>R ~-,�N D '!?��.

alter table � �4 ~-2�, N� ��4 ~-, '! q� �N2y N� ��4 '!2�, � ��A4 partition q� unpartition?��.

begin...end if...else� W# �� N8 �8- �&�� ��Q ��4 l� ( J�  ¡9 SQL EF4 ¢U��.

begin transaction *+, X9 £¤¥�9 �¦ w§R ��?��.

break while ¨pR ©ª?��. break� if ��£R «0 ©© ¬�­���.

case SQL �®¯4 ��; 3H" ° ( J�  ?��. case �®¯# 3 �®¯4 *+O ( J� ±Q²� 8³Q5 *+O ( JU��.

checkpoint �� ´�S(gSvH" t�^ �µ ¶��£^ ´�S)R ·¸ ������ ³¹��Q º��.

close »²R ¼¬�­?��.

coalesce SQL �®¯4 ��; 3H" ° ( J�  ?��. coalesce �®¯# 3�®¯4 *+O ( J� ±Q²� 8³Q5 *+O ( JHy, case �®¯ c½ *+O ( JU��.

commit *+, X9 £¤¥�9 ©ª w§R ��?��.

compute � ¾ ¿VQ ~- ÀH" ��I� Á� 34 t�?��.

connect to...disconnect passthrough ¿� ÃÁ: ²ÄR SX?��.

continue while ¨pR Å�¦?��. continue� if ��£R «0 ©© ¬�­���.

create database � ������R t�?��.

1

��

create default Æ. � ���H" ÇÈ 3� N�IS THÉ � q� *+, X9 ��� ��9 ·Ê �Q Æ.O 34 SX?��.

create existing table ®Å hz ��A XË- column_listQ ÌÍ^ XË� §2�S Î�2� Ï Ð&9 �Å Ñ;R Î�?��.

create index ��A9 25 �d9 �Q ��R t�?��.

create plan abstract query plan4 t�?��.

create procedure 25 �d9 *+, N� Óx'(R *+O ( J� 6Í p"�ÌR t�?��.

create proxy_table � | 4 SX2S T� p � ��A4 t�?��. E� Á` «? ²¼�� hz ��AQ² Ô# Õ����Q² � | 4 ~Ö?��.

create role *+, X9 �(role)4 t�?��.

create rule ×X � q� *+, X9 ��� ��9 �Q Ø+I� 39 �Õ�4 SX?��.

create schema ������ *+,Q c: � ��A, Ù D Ú: ·K4 t�?��.

create table � ��A D ab� integrity constraintR t�?��.

create trigger integrity constraint MÀQ ,Û *+I� 6Í p"�Ì �� Z 25�£ÜR t�?��. £Ü� *+,- SX^ ��AQ² SX^ ��� (X EF4 ��2É ,ÝH" MÀ���.

create view 25 �d9 ��AQ² ���R Ë� }G Z 25� ÙR t�?��.

dbcc ������ �� Þ* (dbcc)� ������9 ß�, à� ��4 Þ*?��. dbcc� X Þ*R w0 X �H" *+2Ü5 ád� 9âI� !ã *+?��.

deallocate cursor »²R är�O ( å�  iæ� � »²" »ç^ ·Ê Õ· `�R 0N?��.

declare = è q� p"�ÌQ c: "é '( ��V ��4 a�?��.

declare cursor »²R X9?��.

delete ��AQ² À4 �N?��.

delete statistics sysstatistics ��ê ��AQ² «�R �N?��.

disk init Adaptive ServerQ² *+O ( J� à� ³¹�� q� � 4 ië��.

disk mirror Primary ³¹��- Mì2É í� c½O ̀ p£î8 lïR t�?��.

disk refit sysdevicesQ \]^ XËQ² master ������9 sysusages D sysdatabases ��ê ��A4 �� Eð?��. master ������RñE2� p"�Ì9 ;"² disk reinit �KQ disk refitR *+?��.

disk reinit master ������9 sysdevices ��ê ��A4 �� Eð?��.master ������R ñE2� p"�Ì9 ;"² disk reinitR *+?��.

disk remirror lï^ ³¹�� oò" ZSIóÜ5 disk unmirror ��H" � ZS^³�ô lïõ4 �� *+ -�2�  ?��.

�� ��

2

1A 9B

disk unmirror hö ³¹��5 0� lïR *+O ( å�  2Ñ 2�î8 ³¹��9 �S Ë( q� '!� -�2�  ?��.

drop database Adaptive ServerQ² 25 �d9 ������R �N?��.

drop default *+, X9 ³÷£R �N?��.

drop index ®Å ������9 ��AQ² �Ò�R �N?��.

drop procedure *+, X9 6Í p"�ÌR �N?��.

drop role *+, X9 �(role)4 �N?��.

drop rule *+, X9 øù4 �N?��.

drop table ��A X9 D 0� ���, �Ò�, £Ü, Ú: úX4 ������Q² �N?��.

drop trigger £ÜR �N?��.

drop view ®Å ������Q² 25 �d9 ÙR �N?��.

dump database load database ��4 *+2Ñ û4 ( J� �¯H" £¤¥� "�R \]: ·Ê ������9 ü¶ *Ï4 ië��. Backup ServerR «0ýp� "�- (À���.

dump transaction £¤¥� "� *Ï4 iæ� *+2S T� ;<4 �N?��.

execute ��ê p"�Ì, *+, X9 6Í p"�Ì q� Ý�H" E�I� Transact-SQL ��4 MÀ?��.

fetch »² ¿V setQ² : À q� ¡9 À4 return?��.

goto Label *+, X9 þ�A" < ?��.

grant *+, q� *+, X9 �(role)Q Ú:4 O�?��.

group by � having � select FQ² ��A4 ��H" 5�� having �9 ��Q �� ��i4 return2� � *+���.

if...else SQL EF MÀQ ��4 ;V?��.

insert ��A�5 ÙQ � À4 ~-?��.

kill p"r�R �N?��.

load database £¤¥� "�R \]0 *+, ������9 ü¶ *Ï4 "�?��.

load transaction £¤¥� "�9 ü¶ *Ï4 "�?��.

lock table £¤¥� Z ��A4 ���H" lock?��.

nullif SQL �®¯4 ��; 3H" ° ( J�  ?��. nullif �®¯# 3 �®¯4 *+O ( J� ±��É 8³Q5 *+O ( JHy case �®¯ c½ *+O ( JU��.

online database Xd�� "� �� µ ������R �+H" *+O ( J� 2� ÃÁQ �� "�^ ������� £¤¥� "� ýpR ®Å Ä�9Adaptive Server" ¶�þ��?��.

open èR w0 »²R ���.

order by � SX: �9 ¾ ¿VR X�^ ²" return?��.

prepare transaction 2 phase commit + p"��Q² DB-LibraryR *+2Ñ ²Ä- £¤¥�4 »çO �¼- Ió�S Î�?��.

�� ��

3

��

print *+, X9 Õ�SR *+, ­ÉQ Ö/?��.

quiesce database SX^ ������ | 9 ¶��£R � Z72� �� �¦?��.

raiserror *+, X9 Qï Õ�SR *+, ­ÉQ Ö/2� ��ê ö�R úX2Ñ Qï d�- �t�K4  ?��.

readtext SX^ op�Q² �¦2Ñ SX^ (9 ¹�£ q� F,ij text Dimage 34 ûU��.

reconfigure ®Å reconfigure ��# ÇÈ �V- åHy (X å� � �ô�£R MÀ2 w0 \]I8 JU��. �� ��Q²� � E� Óx'(RúX2�É sp_configure ��ê p"�Ì �KQ reconfigure - ÃÁ�U��.

remove java ������Q² 25 �d9 Java-SQL �ö�, ì�S q� JAR4 �N?��. ������Q² JavaR *+O P � ��4 *+?��.

reorg *+2� ��Q �� ´�SQ² *+2S T� ��4 Å*+2Ü5,À ��4 �N2Ü5, ��A9 ·Ê À4 � ´�SQ �� º��.

return = è q� p"�ÌQ² È�� ©ª2y return d� ��R N�2� ��� JU��. return �KQ o� EF# MÀIS TU��.

revoke *+, q� �(role)Q² Ú:�5 �(role)4 �`?��.

rollback £¤¥� 69 gSv savepoint5 £¤¥�9 �¦H" *+, X9 £¤¥�4 �ü(roll back)?��.

rollback trigger £ÜR ¦Ý��� ¶��£R \]2Ñ £ÜQ² �¨8� ¦¶4�ü(roll back)2� ab�H" raiserror F4 MÀ?��.

save transaction £¤¥� 6Q² savepointR úX?��.

select ������ Ð&Q² À4 Þ�?��.

set *+, ¦¶ r� Ý[ Adaptive Server ¾ è ��4 úX?��. £Ü q� 6Í p"�Ì 6Q ��4 úX2� � *+O ( JHy, ®År�Q² �(role)4 ¬�­2Ü5 ¼¬�­2� �Q� *+O ( JU��.

setuser ������ `�,- �� *+,R c½ *+2�  Ø+?��.

shutdown Adaptive Server q� Backup ServerR ©ª?��. � ��# ��ê �,i MÀO ( JU��.

truncate table ��AQ² ·Ê À4 �N?��.

union ��� � �d9 ¾ ¿VR ¿?2� 259 ¿V set4 return?��. all ���- SX^ !ã- Ç�É Zñ À# ¿V setQ² �N���.

update ���R ~-2Ü5 � ���R (X2Ñ � À9 ���R '!2�, Û8� ��AQ c: ·Ê «� XËR ¶��£2y, partitioned ��AQ² � partition9 ´�S ( XËR ¶��£2�, SX^ �Ò�Q² � 3 �\Q c: XËR ¶��£?��.

use ¦¶2�� ������R SX?��.

waitfor ×X ��, �� �z q� EF A  MÀ, 6Í p"�Ì, £¤¥�Q c: ��£R SX?��.

�� ��

4

1A 9B

where � select, insert, update q� delete FQ Þ� ��4 úX?��.

while EF q� EF A 9 �ñ MÀ ��4 úX?��. SX^ ��� ��!ã EF� �� MÀ���.

writetext � text q� image �9 "�IS T# c­¯ ¶��£R Ø+?��.

�� ��

5

��

6

2 ���� ��: alter database – continue

alter database�� ������Q O�^ ��9 ô R ����.

�� alter database database_name [on {default | database_device } [= size]

[, database_device [= size]]...] [log on { default | database_device } [ = size ]

[ , database_device [= size]]...] [with override][for load][for proxy_update]

���� database_name���Q�E� �[i��. ���Q�E �[? ���,   ·� �� G�DH �g  v � wx��.

on���Q�E L�& �� ÂS R/·� �:- ^T���. �K R ���v %¬� Á �E �ù w� ¡å, ��� Á �E �= � u/ 012Ó �K Á �E �= log on u/01.��.

defaultalter databasev sp_helpdevice�¨� MN Á�Ö ���Q�EÁ �E ���Q�E L�/ fA� wy/ ^T���.AL� �:- fA2f �Ó ���Q�E L� ��� ÂS- fA234 �y �@/ 01.��.

on default = size

���Q�E Á �E� Y�- Á�Ö�  ¡234 DEFG�DH§ sp_diskdefault- 01.��.

database_device���Q�E L�� �:2� ���Q�E Á �E� �[i��. ���Q�E� C\� ÂSv �� �� � �Y� ���Q�E Á �E- 1� wx��. disk init- 012O ���Q�E Á �E- Adaptive Server �v2�D�.

7

alter database

size���Q�E L� �{� C\ ÂSi��. ÂS� 'k' ·�'K'(�� �Ö), 'm' ·� 'M'(Îv �Ö), 'g' ·� 'G'(Sv �Ö) *� p� fA&� ^T� wx��. í�D p� fA&- ��2� � !x��.

log on���Q�E� Ö×ØÙ �K- �� �v C\/ fA23 ��� / ^T���. log on u? on u$ d+� Á�Ö- 01.��.

with overrided+� Á �E ���� Ö×ØÙ �Kv "O w �� ���Q�E� m� v��� ±foä¬ Adaptive Serverv Á �E 0#/ $ét�¬¹ .��. � u/ 012f �Ó d+� Á �E� �K R ���- %123� ¡å alter database�@� �&v �Í.��. �K� ���- �Ú 0124�with override- 012� ¡å ¡Ó ÎDfv ̂ T^fÌ �@? Æ����.

for load'G� ��z� ���Q�E� C\ �{ R ¯K(Ö 01À/ �Í�=> � � create database for load �y�Ì 01���.

for proxy_updateG¹D ���Q�E �� G¹D U�V/ )�� �dS¿D*��.

�� 1 Á�Ö ���Q�E Á �E w� mydb ���Q�E1MB- �v.��.

alter database mydb

�� 2 newdataä� ���Q�E Á �E w� pubs2 ���Q�E� �{� C\ 3MB- �v.��.

alter database pubs2on newdata = 3

�� 3 userdata1 w� ���- �= 10MB� C\/ �v2Ólogdev w� �K- �= 2MB� C\/ �v.��.

alter database productionon userdata1 = 10log on logdev = 2

8

2A 9B: alter database – continue

�� �

• �+!� p� fA&- ��2f �� ¡å �, 0¢i��.K)^ p� fA&- ��234 �+!- 01=> .��.

• p� fA&- ��2f �Z4 Adaptive Server� ÁE C\/ Îv �Ö ÂS� =-2Ó � .&- �Pv 012� /�± h�f ÂS�  ³.��.

• Adaptive Server� MN ÓA 0� _� �Å ÂS� � �P1�- o� 2� U�V� locking ­#$ h�f ÂSv 312� ÂSB� 4 ¡å )- BÓ.��.

• 8191 �Ö �G5/ 6$2� v  0� _� w� DOL U�V/ Í�� ¡å ={ _ �/ �v� ÷x��.

• Adaptive Serverv create database R alter database� ���Q�E 256 /�± h�f p�� C\/ �{2S �7 �)��@? fA� ÂS- �{ p�� v� ve� 7 � �8.��.

• size- float ��� ��Z� fA� wfÌ KÒ¬ � ÂS��{ p�� v� ve� 7 � �8.��.

• Adaptive Serverv �y Y9� U�V/ Í�2oä¬ DML56/ �� � ÂS �� )v �Í� wx��.

• v  0� _� w� �� �Å � ÂSv �� _ ÂS- 6$� ¡å

• p+ v  0� _� 0�v �� _ ÂS- 6$� ¡å

• DOL U�V� 6S _� é: v  0� _� �G5�8191 �Ö ��/ 6$2� ¡å

• Adaptive Server� ��� C\/ �{� ÷� ¡å Á �E �ä v�24 �; ve� C\/ �{2Ó ù ���Á �E �{� C\� ÂS- BO ½� ÎDf- ��.��.

• ���Q�E� �¼ ÂS� ! 2-1 ��� ¨� �P�01� /�± h�f ÂS �ä ����.

9

alter database

� 2-1: DOL �� ���� �� �� �� � �

• alter database- 012S �=�� í�D master ���Q�E- 012<^ master� �� G�DH- Æ�=> .��.

• Adaptive Server� ��� C\/ �{� ÷� ¡å Á �E �ä v�24 �; ve� C\/ �{2Ó ù ���Á �E �{� C\� ÂS- BO ½� ÎDf- ��.��.

• master ���Q�E� master Á �E�Ì L�� wx��. master ���Q�E- =�� �� ���Q�E Á �E� L�2S �= alter database- 0123� ¡å ) ÎDfv ^T>��. �y? master Á �E w� master ���Q�E- A2S �� ? � �7� '�i��.

alter database master on master = 1

• create database ·� alter database- 012O ���Q�E Á �E C\/ �{� �@� ù �{? Á �E GÒK(Ö- ^T�Ó sysusages� �Z� i����.

• 'G 56� A� �§ ���Q�E� alter database- 012� ¡å 'Gv B�� �ef alter database �@/ C�� ÷x��. Adaptive Server� 'Gv Æ�z� d² ���Q�E C\ 01� ÎM��(in-memory) D/ lock.��. � ÎM��(in-memory) D� lock� Y�� alter database �@/ Æ�2� ¡å Adaptive Server� 'Gv C�� � ÁEÂ�D/ 6��Ö.��. alter database �@� §�EÖz� ¡åAdaptive Server� sp_dbremap/ Æ�2¬¹ fD.��. sp_dbremap/ Æ�2f F� ¡å Adaptive Server� �y �,G� �ef 01&v �v� C\/ 01� ÷x��.

• �Gä§ ���Q�E� alter database on database_device-01� wx��.

�� �� �� �� master ��

• alter database- 01� �� �H dump database �@/ 012O master ���Q�E- I6.��. �J© 24 mastervæYz� ¡å çÓ ²�2© m�� wx��.

�� �� � ! "2K 166

4K 337

8K 678

16K 1361

10

2A 9B: alter database – continue

• alter database- 012fÌ master I6 Æë� ¡å disk refit-012O  ¡ 0¢/ m�� wx��.

�� ����� � !"

• create database log on L�/ 012� ¡å Ö×ØÙ �K�{� H� C\� ÂS- KvDì34 alter database �@/Æ�� � log on u �K Á �E� �[/ fA.��.

• �K- %¬ Á �E H�2S �=� create database� logon L�/ 012f �L�4 2�ÁEÂv æYz� ¡å C�2© m�2f F� wx��. � ¡å� alter database� logon u/ �Ú 012Ó sp_logdevice- 012O �K- L�� wx��.

�� ��� #� $%& '(

• ���Q�E� �9 01 �§ Á �E GÒK(Ö� �[,ÂS R 01À/ M34 sp_helpdb dbname/ Æ�.��.

• "� ���Q�Ev 01 �§ C\� ÂS- M34 sp_spaceused- Æ�.��.

system ) default * +,

• system R default ̄ K(Ö� alter database �@� on u ������ ù ���Q�E Á �E� �N���. � ̄ K(Ö��N/ =�234 sp_dropsegment- 01.��.

• ���Q�Ev �9 01 �§ Á �E� ���Q�E- L�2S �= override- 012f �Ó alter database- 012�¡å � Á �E �N� ¯K(Ö¬ �Ú L����. overrideu/ 012� ¡å on u w� �[� fA� MN Á �EGÒK(Ö� DEF/Á�Ö ¯K(Öv zW, log on u w��[� fA� MN Á �E GÒK(Ö� �K ¯K(Öv ���.

#( -. /�*�0 123( 4� alter database ��

• 01& G�¯Ev �K ¯K(Ö� @fO =¦2 ¬P=�+D �pz� ¡å, alter database- 012O �K ¯K(ÖC\/ �v.��. Q C\� ÂSv @fO =¦2/ 6$2� ¡å G�¯Ev D5���.

11

alter role

for proxy_update ��

• �� üÙ/ 012f �Ó for proxy_update u/ i�24 ���Q�E� ÂSv L�zf �x��. K �� G¹D U�V� G¹D ���Q�E� R�zÓ, create database ... withdefault_location = ‘pathname’� fA� ¡� �[� á? ÎT����,� �Í�� i��.

• � �@/ �� üÙ$ �Ú 012O ���Q�E� ÂS-L�24 ÂS L�� �� � G¹D U�V dS¿v Æ����.

• �� l? alter database L�� ¸±? p+ �Ï 0�Ö� MN U�V� AL� �� G¹D !"/ áS �� 1�2Ó \p� d5/ DBA �C2� i��.

• �� l? �dS¿� HA cluster ³¡� Primary �PSÌ é�ä MN Ð, ��� ¼E- f�.��. ·� for proxy_update u/ 012O ���Q�E- Í�� ��v ÷x��. createdatabase �@�^ sp_defaultloc/ 012O Á�Ö H� �:-fA� ¡å ���Q�E ��� ÎT���� �Ï H� �: w� ÎT���� dS¿� wx��.

56

7� alter database ��� Á�Ö �A? ���Q�E ¼�&i��. DEF ��&¬ ���Q�E-  ¡� wx��.

89 �� – create database, disk init, drop database, load database

��� ���� – sp_addsegment, sp_dropsegment, sp_helpdb,sp_helpsegment, sp_logdevice, sp_renamedb, sp_spaceused

alter role �� T(role) 0�� YU 7T± �¦- A�2Ó T(role) ��� V

U- �v, R� R  ¡.��. VU Ì� ½S, �¼ VU 0�, fA� T(role) 31� �� �K§ �& W */ fA.��.

�� alter role role1 { add | drop } exclusive { membership | activation } role2

�# $% "#SQL92 Transact-SQL ÎÍ

12

2A 9B: alter database – continue

alter role role_name [add passwd "password" | drop passwd] [lock | unlock]

alter role { role_name | "all overrides" } set { passwd expiration | min passwd length | max failed_logins } option_value

���� role1YU 7T± �¦ w� 2^� T(role)i��.

addYU 7T± �¦� T(role)/ �v2Ó T(role) VU- �v.��.

dropYU 7T± �¦� T(role)/ R�2Ó T(role)� VU- R�.��.

exclusive�[� fA� g� T(role)/ YU 7T±Z� ÌX��.

membership 01&© g� T(role)/ dD Y§2f �x��.

activation01&© g� T(role)/ dD Y§� wfÌ g�T(role)/ dD Z�¿� � ÷x��.

role2YU 7T± �¦ w� �� 2^� T(role)i��.

role_nameVU- �v, R� ·�  ¡23� T(role)� �[i��.

passwdT(rold) VU- �v.��.

passwordT(role) �v� VUi��. VU� 0�� ±¬ 6&v z> 2W #%& õö/ X => .��. VU   - 01� ÷x��.

lockfA� T(role)/ lock.��.

unlockfA� T(role)� lock/ =�.��.

all overridesjA T(role)� é: �Å �P- �[� �A/ ±1.��.

13

alter role

set�A/ �[� üÙ/ Z�¿.��.

passwd expirationVU Ì� ½S- + p�� fA.��. 0� 32676 0�� 2/ 01� wx��.

min passwd lengthfA� VU 01� w� �¼ 0�- fA.��.

max failed_loginsfA� VU �= 31� �� �K§ D¬ �& W - fA.��.

option_valuepasswd expiration, min passwd length ·� max failed_logins� 2/ fA.��. all overrides- �A234 option_value 2/ -1� �A.��.

�� 1 intern_role R specialist_role/ YU 7T±Z� A�.��.

alter role intern_role add exclusive membership specialist_role

�� 2 ��� X R Z� X� T(role)/ YU 7T±Z� A�.��.

alter role specialist_role add exclusive membership intern_rolealter role intern_role add exclusive activation surgeon_role

�� 3 S£� T(role) VU- �v.��.

alter role doctor_role add passwd "physician"

�� 4 S£� T(role)� VU- R�.��.

alter role doctor_role drop passwd

�� 5 physician_role T(role)/ lock.��.

alter role physician_role lock

�� 6 physician_role T(role)� lock/ =�.��.

alter role physician_role unlock

�� 7 physician_role �= 31� �� �K§ �& W - 5�  ¡.��.

alter role physician_role set max failed_logins 5

14

2A 9B: alter database – continue

�� 8 S£� T(role)§ physician_role� �¼ VU 0�- 5&� �A.��.

alter role physician_role set min passwd length 5

�� 9 MN T(role)� �¼ VU 0�- �D.��.

alter role "all overrides" set min passwd length -1

�� 10 MN T(role)� �� �K§ �& W �� å� ±1 �A/ R�.��.

alter role "all overrides" set max failed_logins -1

�� • alter role �@? T(role) 0�� YU 7T± �¦- A�2Ó T(role)� VU- �v, R� R  ¡.��.

• T(role)  ¡ �� &¯� �1? ��� �� ���- ��2�D�.

• all overrides �g  � sp_configure- �y �g  � �Ú 012O S£ �A� DEF å� �A/ �<.��.

• passwd expiration

• max failed_logins

• min passwd length

T(role) VU- R�24 VU Ì� R �� �K§ �& üÙ�� å� �A� �<���.

:; !<= >(role)

• 01&� T(role)/ YU 7T± �¦� fA2<^ T(role) ¦\/ jA� ¶�� fA� ��v ÷x��.

• YU 7T�/ T(role) ¦\$ �Ú 012O 01& A� T(role) �( �]/ ,$� wx��.

• YU 7T± ���? YU 7T± Z�¿B� )�� ��i��. ���� T(role)/ YU 7T±Z� A�24 Z�¿D ^D±Z� YU 7T±� ���.

• ���� T(role)/ YU 7T±Z� A�24 Z�¿ D YU 7T±Z� A�=¬ ��� A� ;</ 9:f �x��. Z��� YU 7T�? ����� YU 7T�$%¬� �vzÓ R����.

15

alter table

• T(role)/ dD 01& ·� T(role) Y§� �� T(role)/ YU 7T±Z� A�� ÷x��. ��� X�T(role)/ YU 7T±Z� A�23Ó D¬2S � 01&© Y§� S£� T(role)? _¼.��.

• Z� D T(role)� YU 7T±Z� A�z4 DEF B²�{&� g� T(role)/ d+� 01& �{� wx��.2fÌ 01&� T(role)/ dD Z�¿D� ÷x��.

• DEF B² �{&v Z� D T(role)/ YU 7T±Z�A�2Ó 01&v �9 T(role)/ Z�¿2<^ Á�Ö��K§ D Z�¿z¬¹ �A`�4 Adaptive Server� T(role)/ YU 7T±Z� ÌtfÌ T(role)� ab2� jA 01&- M3 ½� ¡Ó ÎDf- !D.��. Z�¿� 01&� T(role)?  ¡zf �x��.

>(role)? @; �A

• T(role)� VU-  ¡234 å� S£� VU- R�2Ó �y$ l� ��� VU- �v.��.

alter role doctor_role drop passwdalter role doctor_role add passwd "physician"

�� 01& A� T(role) ,O� VU� �zf �x��.

56

7� DEF B² �{&Ì alter role/ Æ�� wx��.

89 �� – create role, drop role, grant, revoke, set

'( – mut_excl_roles, proc_role, role_contain, role_id, role_name

��� ���� – sp_activeroles, sp_displaylogin, sp_displayroles, sp_modifylogin

alter table�� U�V � _/ �v.��. S£ _/ R�2<^ A.��. �

( �]/ �v,  ¡, R�.��. S£ U�V� *¹AB-  ¡.��. U�V Ö�<- �A2<^ =�.��.

�# $% "#SQL92 Transact-SQL ÎÍ

16

2A 9B: alter database – continue

�� alter table [[database.][owner].table_name { add column_name datatype

[default {constant_expression | user | null}]{identity | null | not null} [off row | in row][ [constraint constraint_name]

{ { unique | primary key }[clustered | nonclustered] [asc | desc][with { fillfactor = pct,

max_rows_per_page = num_rows, reservepagegap = num_pages }]

[on segment_name]| references [[database.]owner.]ref_table

[(ref_column)] | check (search_condition) ] ... }

[, next_column]...

| add {[constraint constraint_name]{ unique | primary key}

[clustered | nonclustered](column_name [asc | desc]

[, column_name [asc | desc]...])[with { fillfactor = pct,

max_rows_per_page = num_rows, reservepagegap = num_pages}]

[on segment_name]| foreign key (column_name [{, column_name}...])

references [[database.]owner.]ref_table[(ref_column [{, ref_column}...])]

| check (search_condition)}

| drop {column_name [, column_name]... | constraint constraint_name }

| modify column_name datatype [null | not null] [, next_column]...

| replace column_namedefault { constant_expression | user | null}

| partition number_of_partitions

| unpartition

| { enable | disable } trigger

| lock {allpages | datarows | datapages } }

| with exp_row_size=num_bytes

17

alter table

���� table_name ¡� U�V� �[i��. U�V� �� ���Q�E wZ4 ���Q�E �[/ fA2Ó ���Q�E l? �[�U�V� � �Y wZ4 ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&�W database� Á�Ö2? "� ���Q�Ei��.

addU�V �v� _ ·� �( �]� �[/ fA.��. CIS(Component Integration Services)v Z�¿z wZ4 �Ï �P add- 01� ÷x��.

column_name ={ U�V� _ �[i��. ���Q�E� Javav Z�¿z wZ4 _? Java-SQL _� � wx��.

datatypebit- �Ð� MN DEF ��� �� ·� bit- SíZ� 2� ��� ��/ �Ð� MN 01& A� ��� ��i��.

���Q�E� Javav Z�¿z wZ4 ���Q�E �:z w� DEF `ÒE ·� 01& A� `ÒE *$ l?Java `ÒE� �[� � wx��. &¯� �1? Java in Adaptive Server Enterprise- ��2�D�.

default_� Á�Ö2/ fA.��. Á�Ö- fA� Y�� 01&v���- ci� � � _ 2/ i�2f �Z4 Adaptive Server� � Á�Ö2/ ci.��. Á�Ö �A? constant_expression,user(���- i� �§ 01&� �[ ci) ·� null(NULL 2 ci)� � wx��.

Adaptive Server� tabname_colname_objid� �#Z� Á�Ö��[/ Í�2W OS� tabname? U�V �[� ¨y 10&�Ócolname? _ �[� ¨y 5&�W objid� Á�Ö� Å ID HUi��. Á�Ö- null� �A24 Á�Ö �A� R����.

CIS(Component Integration Services)v Z�¿z wZ4 �Ï�P� default- 01� ÷x��.

constant_expression _ �� Á�Ö2Z� 01� Y !"#i��. � !"#?�� _ ·� ���Q�E Å� �[? ��� ÷fÌ ��� � ��� wx��. � Á�Ö2? _� ��� ��$ U³z> .��.

18

2A 9B: alter database – continue

user 01&v 2/ i�2f �Z4 Adaptive Server� 01& �[/ Á�Ö� i�2¬¹ fA.��. _� ��� ��? char(30),varchar(30) ·� Adaptive Serverv ^D±Z� char�  ³� w� ���> .��. ��� ��� char(30) ·� varchar(30)�éd ¡å truncation� �Í� wx��.

null | not nullÁ�Öv ÷/ ¡å ���- ci2� d² Adaptive Server�d5/ fA.��.

null? �v� _� NULL/ 31�/ fA.��. Adaptive Server� 01&v 2/ i�2f �Z4 NULL 2/ �{.��.

not null? �v� _� NULL/ 312f �y/ fA.��. i�2� d² Á�Öv ÷Z4 01&� NULL� é: 2/ i�=> .��.

null ·� not null/ fA2f �Z4 Adaptive Server� not null/ Á�Ö� 01.��. K)^ sp_dboption/ 012O � Á�Ö-�³24 SQL !X$ U³z� Á�Ö- Ìt wx��. ���v� _ not null/ fA2� ¡å Á�Ö u� ��.��. �Á�Ö2? �� �v� _ w� S£� MN � 01���.

identity_ IDENTITY e�� wy/ ^T���. ���Q�E� ù U�V? numeric �� R Ef+ ��(scale zero) ��� IDENTITY_/ 2^g vh wx��. IDENTITY _? 6��Ö- � ÷ZW NULL� 31zf �x��.

IDENTITY _? Adaptive Server� &dZ� Í�2� ;��HU ·� 0� HU� l? ¶� HU- H�.��. IDENTITY_� 2? U�V� ù �/ Ó�2© ^T���.

CIS(Component Integration Services)v Z�¿z wZ4 01&� �Ï �P� identity- 01� ÷x��.

off row | in rowJava-SQL _� �$ �z H�z�f, � bc �{� H�C\ H�z�f fA.��.

in row _ �� H� C\? ���Q�E �P R ��   �ä 16K �Ö- 6$� ÷x��. Á�Ö� off rowi��.

19

alter table

constraintintegrity constraint� �[/ fA.��. CIS(Component Integration Services)v Z�¿z wZ4 01&� �Ï �P� constraint- 01� ÷x��.

constraint_name �( �]� �[i��. � �[? #%& õö/ X => 2W���Q�E� Ó�=> .��. U�V X� �( �]�� �[/ fA2f �Z4 Adaptive Server� tabname_colname_objectid� l? �#Z� �[/ Í�.��.OS� tabname? U�V �[� ̈ y 10&�Ó, colname? _ �[� ¨y 5&�Ó, objectid� �( �] �� Å ID HUi��. Unique ·� Primary ì �( �] �� �[/ fA2f�Z4 Adaptive Server� tabname_colname_tabindid� l? �#Z� �[/ Í�.��. OS� tabindid� U�V ID R §iE ID� 7&_ Ñ8i��.

�( �]� �v� � U�V �9 £�2� ���� �(�]� ±1zf �x��.

unique!D� _� null� é: l? 2/ vA �� £�� ÷¬¹ 2/ ��.��. � �( �]? �( �]� R�z� ¡åÌ R�� w� unique §iE- Í�.��. � üÙ? ����� null üÙ$ �Ú 01� ÷x��.

primary key!D� _� �� l? 2/ vh ÷¬¹ 2/ ��2Ó2� NULL� � ÷¬¹ ��.��. � �( �]? �( �]� R�z� ¡åÌ R�� w� unique §iE- Í�.��.

clustered | nonclusteredunique ·� primary key �( �] �ä Í�� §iE- clustered§iE ·� nonclustered §iE� fA.��. clustered� U�V �= clustered §iEv �9 £�2f �� � Primary ì�( �]� Á�Ö�W nonclustered� unique �( �]� Á�Öi��. clustered §iE� U�V{ 2^Ì w/ wx��.&¯� �1? create index- ��2�D�.

20

2A 9B: alter database – continue

fillfactorAdaptive Serverv S£� ��� �� � §iE- Í�� �ù h�f� j� kl/ fA.��. fillfactor kl? §iEv Í�z� ¡åÌ ��� wx��. ���v  ¡zm� h�f� j� A¬� jA XZ� �fzf �x��.

fillfactor� Á�Ö� 0i��. � Á�Ö� create index 7 withfillfactorv ��zf �? ¡å 01���(sp_configure- 012O 2�  ¡zf �? ¡å). fillfactor- fA� � 1$ 100 0�� 2/ 01.��.

fillfactor� kl� 0�4 C�k jýA h�f- vA clustered §iE� C�k jýA �G h�f- vA nonclustered §iE-Í�.��. clustered §iE� nonclustered §iE� §iE B-Ö� � aÔ� #� C\/ nop��. fillfactor-  ¡� ��v <� ÷x��.

fillfactorv 100Z� �A� ¡å Adaptive Server� ù h�fv 100%jýA clustered §iE� nonclustered §iE- M Í�.��. 100%� fillfactor kl? �v� ���v ÷� øS �1 U�V�Ì �9v wx��.

100B� 5? fillfactor 2(j%� ¡å§ 0? �Ð)? Adaptive Serverv C�k jýff �? h�f � §iE- Ìt¬¹ .��.<� �1À� ���- 1� U�V �� §iE- Í�23� ¡å� fillfactor� 2/ 10Z� �,2� � ±u.��.2fÌ fillfactor� 2� 5Z4 ù §iE(·� §iE R ���)v �f2� H� C\? Kv.��.

��! fillfactor- 012O clustered §iE- Í�24 Adaptive Serverv clustered §iE- Í�� � ���- �Ô72S �7 ���v ��2� H� C\� # ;</ 9q��.

21

alter table

max_rows_per_page��� h�f R §iE� �G �r h�f w� �� - ��.��. fillfactor� P� max_rows_per_page 2? sp_chgattribute-012O  ¡� �ef �f���.

max_rows_per_page� 2/ fA2f �/ ¡å Adaptive Server� §iE- Í�� � 2 0/ 01.��. ��� h�f �=max_rows_per_page- fA2� ¡å 0$ 256 0�� 2/ 01.��. nonclustered §iE� h�f{ �� �� � §iE ì� ÂS �£.��. fA� 2� s� t? ¡å Adaptive Server� ) ÎDf- return.��.

�( �] �= Í�� §iE� max_rows_per_page� �A� 0�4 h�fv vu v clustered §iEv Í�z<^ �G h�fv vu v nonclustered §iEv Í����. �A 2� 0�4 clustered R nonclustered §iE� M B-Ö� � O� w� C\ ÂS- nw��.

max_rows_per_pagev 1� �A� ¡å Adaptive Server� �G �r� h�f{ 2^� �/ vfÓ w� clustered R nonclustered�G §iE h�f- Í�.��. � 2/ 0124 &½ ܯEz� ��� �� lock ab/ ò+ wx��.

max_rows_per_page� 2� xZ4 Adaptive Server� h�fv vu �f �? ��� §iE- Í�2m� H� C\/ o 01� w¬¹ h�f- Ô�� wx��.

��! max_rows_per_page- 012O clustered §iE- Í�24Adaptive Serverv clustered §iE- Í�� � ���- �Ô72S �7 ���v ��2� H� C\� # ;</ 9q��.

on segment_name�[� fA� ¯K(Ö §iE- Í�2¬¹ fA.��. onsegment_name üÙ/ 012S � disk init- 012O Á �E- 6S¿2Ó sp_addsegment DEF G�DH- 012O ¯K(Ö- ���Q�E �v=> .��. ���Q�E 01� w� ¯K(Ö �[ ¸¹? DEF ��&© 7�2<^sp_helpsegment- 012�D�.

clustered- fA2Ó on segment_name üÙ/ 012� ¡å §iE� �G �r� Æ� ��� h�fv ��z wS �7�Å U�V? 01&v fA� ¯K(Ö� ��.��.

22

2A 9B: alter database – continue

references�� integrity constraint� _ ¸¹/ fA.��. 2^� _ �(�] �= 2^� _ 2Ì fA� wx��. �� U�V/��2� U�V � �( �]/ ��24 � )* U�Vciz� MN ���� �9 � +* U�V w> .��.

� �( �]/ 01234 ��z� U�V �� references ��/ ßÓ w> .��. ��z� U�V� fA� _/ unique§iE(unique �( �] ·� create index 7Z� Í��)� ��=> .��. _/ fA2f �? ¡å ��z� U�V� ={ _ primary key �( �]� w> .��. ·� ��2� U�V_� ��� ��? ��z� U�V _� ��� ��$ AL2© +:=> .��.

CIS(Component Integration Services)v Z�¿z wZ4 01&� �Ï �P� references- 01� ÷x��.

foreign key^_� _� U�V� foreign ì=/ fA.��. � ì� +:2� Primary ì� references u ^_z� _i��.

ref_table ��z� _� ��� U�V� �[i��. �� ���Q�E w� U�V/ ��� wx��. �( �]? �� 192g�01& U�V$ �,±Z� Í�� 56 U�V/ ��� wx��. DEF G�DH§ sp_helpconstraint- 012O U�V��� �8�/ Ý0.��.

ref_column ��z� U�V w� _ �[i��.

checkAdaptive Serverv U�V w� MN � �= ±12� search_condition �( �]/ fA.��. CIS(Component Integration Services)v Z�¿z wZ4 01&� �Ï �P� check- 01� ÷x��.

23

alter table

search_condition _ 2 �� check �( �]/ A�2� boolean !"#i��.�y$ l? �( �]� w/ wx��.

• in/ 012O fA� Y !"#� ¸¹

• like �= fAzW �! 7&v ��� w� �] s.

!"#? ÕÛ ÑÕ R Transact-SQL � - ��� wx��. search_condition? �ã¾�, s¦ � (Aggregate function), �g  ·� UEÖ   - ��� ÷x��.

next_column_ A�� ��� l? �7/ 012� �v _ A�(y@� �Ô)- ��2Ó wx��.

dropU�V� R�23� _ ·� �( �]� �[/ fA.��.CIS(Component Integration Services)v Z�¿z wZ4 01&� �Ï �P� drop/ 01� ÷x��.

modify ��� �� R NULL ��/  ¡2Ó w� _� �[/ fA.��.

replaceÁ�Ö2/ �y default u� fA� ��� 2Z�  ¡23�_/ fA.��. CIS(Component Integration Services)v Z�¿z wZ4 01&� �Ï �P� replace- 01� ÷x��.

partition number_of_partitionsU�V �= �� ���Q�E page chain/ Í�.��. Adaptive Server� ù ÑË� @fO h�f dD ci ÑÕ/ �� wx��. number_of_partitions� 2 �Y� # vz> .��. ù partition� �v � h�fv ��2W ÁE C\� ,z� ¡å� U�V Í�� w� partitiong v ��� wx��. ÎM�v ,z� ¡å� ܯE� w� partitioned U�V� g v ��� wx��.CIS(Component Integration Services)v Z�¿z wZ4 01&� �Ï �P� partition/ 01� ÷x��.

unpartition{ h�f �y page chain/ Ñ82O U�V �� p+ pagechain/ Í�.��. CIS(Component Integration Services)v Z�¿z wZ4 01&� �Ï �P� unpartition/ 01� ÷x��.

24

2A 9B: alter database – continue

asc | desc§iEv �[�¶(asc)Z� Í�z�f �8�¶(desc)Z� Í�z�f fA.��. Á�Ö� �[�¶i��.

reservepagegap = num_pages�( �] �= Í�z� §iE �= |E}Ö(extent) i/�� �{ 56/ 2� d² jýh h�f� noh Q h�f� kl/ fA.��. fA� num_pages@� ^� U�V/ L�� w¬¹ Q h�f- no ~x��. ��2? 0-255i��.Á�Ö2§ 0? Q h�f- nSf �x��.

lock datarows | datapages | allpagesU�V 01z� locking ­#/  ¡.��.

exp_row_size = num_bytes'Yz� � ÂS- fA.��. alter table� ��� m0- �2� ¡å �= datarows R datapages locking ­#Ì ±1.��. ��2? 0, 1 R U�V� �¼ � 0�� �� � 0� 0�� MN 2i��. Á�Ö2? 0�W �� �P� �A� ±1�/ �9.��.

�� 1 U�V _/ �v.��. U�V w� S£� ù � �=� Adaptive Server� �y NULL _ 2/ �{.��.

alter table publishersadd manager_name varchar(40) null

�� 2 U�V IDENTITY _/ �v.��. U�V w� S£� ù � �=� Adaptive Server� Ó�� ¶� _ 2/ �{.��. IDENTITY _� ��� numeric�Ó �� Ef+=/ ½�2�D�. A�¬(P)� _ ci� w� ��2(10 5 - 1 ·� 99,999)/ fA.��.

alter table sales_dailyadd ord_num numeric(5,0) identity

�� 3 authors U�V Primary ì �( �]/ �v.��. U�V S£� Primary ì ·� unique �( �]� £�2� ¡å S£� �( �]/ (H R�=> .��('� 5 ��).

alter table authorsadd constraint au_identificationprimary key (au_id, au_lname, au_fname)

�� 4 authors �= §iE- Í�.��. � §iE� reservepagegap2� 16�W �{� 15g� h�f@� §iE Q h�f- 2^g nw��.

alter table authors

25

alter table

add constraint au_identificationprimary key (au_id, au_lname, au_fname)with reservepagegap = 16

�� 5 au_identification �( �]/ R�.��.

alter table titlesdrop constraint au_identification

�� 6 authors U�V w� phone _ �� Á�Ö �( �]/ R�.��. � _ NULL 2� 31z� ¡å _ 2� fAzf �L�4 NULL/ ci.��. � _ NULL 2� 31zf �� ¡å _2/ fA2f �? ci� �&v �Í.��.

alter table authorsreplace phone default null

�� 7 titleauthor U�V �= 4g� ��� page chain/ Í�.��. U�V� partition� � S£� ���� { H� partition né wx��. 2fÌ ��� �? 5g� MN partition ci���.

alter table titleauthor partition 5

�� 8 titleauthor U�V� MN page chain/ Ñ8� �y 6g�partitionZ� �D partition.��.

alter table titleauthor unpartitionalter table titleauthor partition 6

�� 9 titles U�V �� locking ­#/ datarows lockingZ�  ¡.��.

alter table titles lock datarows

�� 10 NULL� é: _ author_type/ primary_authorv ÷� authorsU�V �v.��.

alter table authorsadd author_type varchar(20)default "primary_author" not null

�� 11 titles U�V� advance, notes R contract _/ R�.��.

alter table titlesdrop advance, notes, contract

�� 12 authors U�V� city _� NULL� ÷� varchar(30)� z¬¹ A.��.

alter table authorsmodify city varchar(30) null

26

2A 9B: alter database – continue

�� 13 stores U�V� stor_name _� NOT NULL� z¬¹ A.��. ��� �� varchar(40)?  ¡zf �y/ ½�.��.

alter table storesmodify stor_name not null

�� 14 titles U�V� type _/ A2Ó titles U�V� locking ­#/ �Å h�f� ��� �Z�  ¡.��.

alter table titlesmodify type varchar(10)lock datarows

�� 15 titles U�V� notes _/ varchar(200)� varchar(150)Z� A2Ó, Á�Ö2/ NULL� NOT NULL�  ¡2Ó, exp_row_size- 40Z� fA.��.

alter table titlesmodify notes varchar(150) not nullwith exp_row_size = 40

�� 16 _/ �v, A R R�� � ¾� �� _/ �v.��. locking ­#/  ¡2Ó ��� _� exp_row_size- fA.��.

alter table titlesadd author_type varchar(30) nullmodify city varchar(30)drop notesadd sec_advance money default 1000 not nulllock datarowswith exp_row_size = 40

�� • select *- 012� �� G�DHv  ¡� U�V/ ��24with recompile üÙ/ 012oä¬ ��� _� 8$ set ^T^f �x��. 01&� � G�DH- R�2Ó �Í�=���� _/ ��D�> .��.

• U�V ¼�&v alter table �@/ 0124 Adaptive Server�� � �@/ Æ�2� d² ܯE õö/ =�2W �@/C�� � �D �A.��. ܯE õö� =�z alter table� U�V� ���v ��ðzf �¬¹ .��.

• bit ��� ��� _/ S£� U�V �v� ÷x��.

• U�V� �� _ � �y$ lx��.

• APL(all-pages-locked) U�V$ DOL(data-only-locked) U�V� U�V M� ÓA 0� _ �= 1024i��.

27

alter table

• alter table? APL U�V� v  0� _ v 254- 6$2� ¡å )- BÓ.��.

��! DEF U�V/  ¡2f @�D�.

• � �(in row) Java _ �� �� 0�� U�V Eì@, locking�� R h�f ÂS �� v  0� _� �� ÂS �= 8A���.

• U�V/ �� locking ­#Z�  ³� � ¼E U�V� ���� �Y U�V� ��/ �í� ÷x��. '- t 255�Y� v  0� _� w� DOL U�V/ APL U�V�  ³23� ¡å APL U�V? �� 254_/ vf¬¹ ��z wS �7 alter table� �&v �Í.��.

• char, binary *� ÓA 0� ���- ß� _� �� ÂS� ! 2-2 ^� wx��.

� 2-2: �� � � � �� - APL � DOL

• � �{ v  0� ���� �� �Ö � U�V� locking­# �ä ����. ! 2-3? APL U�V �� �� ÂS_/ ��2Ó ! 2-4� DOL U�V �� �� ÂS _/ ��.��.

locking & �� �� � ! ' � ( '2K(2048¹�£) 1962 1960¹�£

4K(4096¹�£) 4010 4008¹�£

APL ��A 8K(8192¹�£) 8106 8104¹�£

16K(16384¹�£) 16298 16296¹�£

2K(2048¹�£) 1964 1958¹�£

4K(4096¹�£) 4012 4006¹�£

DOL ��A 8K(8192¹�£) 8108 8102¹�£

16K(16384¹�£) 16300 16294¹�£��AQ -' � �� \]IS T� !ã

16K(16384¹�£) 16300 (varlen9 _c �¦ op�Q �� �� = 8191)

8191-6-2 = 8183¹�£��AQ _` -' � �� J� !ã.*

* � ô � À oÄ!�Q c0 6¹�£ �� À � Ã�Q c0 2¹�£R \]?��.

28

2A 9B: alter database – continue

� 2-3: APL ��� �� �� �� �� �� ��

� 2-4: DOL ��� �� �� �� �� �� ��

• �9 partition� DEF U�V ·� U�V? partition� ÷x��.

• partition ·� unpartition u/ 01& A� Ö×ØÙ �� 012O alter table/ Æ�� ÷x��.

• max_rows_per_page� ��2? APL U�V� ¡å 256 �Öi��. max_rows_per_page �g  � DOL U�V 01zf �x��.

• �9 partition� DEF U�V ·� U�V? partition� ÷x��.

• partition ·� unpartition u/ 01& A� Ö×ØÙ �� 012O alter table �@/ Æ�� ÷x��.

• alter table/ 012O ��7 ·� check �( �]/ �v2Ód+� 7: ·� G�DH� U�V ���- ci� ÷x��. �� 7: ·� G�DH alter R insert 7/ ùù�Ô2<^ execute- 012O 56/ g%±Z� �.��.

• Á�Ö- ��2� alter table 7 �y   � 01� ÷x��.

declare @a intselect @a = 2alter table t2 add c3 intdefault @a

�J© 24 "Variable is not allowed in default"ä� ) ÎDf 154v !D���.

�� �� � ! ' � ( '2K(2048¹�£) 1962 1948

4K(4096¹�£) 4010 3988

8K(8192¹�£) 8096 8058

16K(16384¹�£) 16298 16228

�� �� � ! ' � ( '2K(2048¹�£) 1964 1954

4K(4096¹�£) 4012 4002

8K(8192¹�£) 8108 7998

16K(16384¹�£) 16300 162290

29

alter table

B�C D' �EF(

• U�V R U�V _ �� �1? sp_help- ��2�D�.

• U�V� �[/ �34 DEF G�DH§ sp_rename/ Æ�.��(DEF U�V� �[? �f @�D�).

• integrity constraint(unique, primary key, references, check) ·� default u �� �1? � �� create table/ ��2�D�.

FGHI�J KLHIM� .N� DO IP QD

• §iE _ �[ �y asc� desc ìý�- 012O §iE�Aµ ¶�- fA.��. ¾�� order by u fA� ¶���Aµz¬¹ §iE- Í�24 ¾� ¨� � Aµ p¦v Í]���. &¯� �1? Performance and Tuning Guide� 8�"Indexing for Performance"- ��2�D�.

RH S�TU�� 89 integrity constraint? ��

• ª� ���Q�E �( �]/ Í�2� ¡å Adaptive Server� ù ���Q�E� sysreferences DEF U�V �y AB- H�.��.

� 2-5: � integrity constraint! "#$ %& '(

• ��2� U�V ·� � U�V� ���Q�E- R�2� ¡å Adaptive Server� ��z� ���Q�E� foreign ì AB- R�.��.

• ��2� U�V? ��z� U�V� AB �ä PäfS �7 Adaptive Server� �y/ 312f �x��.

• ��z� U�V R�

• ��z� U�V/ ��2� Ð, ���Q�E R�

• sp_renamedb- 01� ���Q�E �[  ¡

sysreferences) *+, ��

-./0 123 � , �� (

-.40 123 � , �� (

� � ID refkey1 - refkey16 fokey1 - fokey16

��A ID reftabid tableid

������ ID pmrydbid frgndbid

������ �� pmrydbname frgndbname

30

2A 9B: alter database – continue

01&� å� alter table$ ��� ª� ���Q�E �( �]/ R�=> .��.

• ª� ���Q�E �( �]/ �v2<^ R�� �@� ;</ $? ���Q�E- ,- 'G2�D�.

��! �� 'G� ���Q�E- ��24 ���Q�EvæY� wx��.

• sysreferences DEF U�V? Ð, ���Q�E� name$ IDHU- H�.��. load database- 012O ���Q�E �[/  ¡2<^ �� �P� ��� ¡å Adaptive Server� �� �8�/ B�� ÷x��.

��! �� �[/ 012O ��2<^ �� Adaptive Server����Q�E- �d2S �= 'G2S � (H alter table/012O Ð, �� integrity constraint- M R�.��.

�V, �A

• _ Á�Ö� �y vf ­®Z� Í�� wx��. createtable ·� alter table 7� Á�Ö- _ �( �]Z� ��2<^ ·� create default 7/ 012O Á�Ö- Í�� �ysp_bindefault- 012O � Á�Ö- _ §�.��.

• _� ��� 01& A� Á�Ö- sp_bindefault� � ÷x��. sp_unbindefault- 012O Á�Ö� §�/ =�.��.

• create table ·� alter table/ 012O Á�Ö _ 2/ ��� ¡å 01&� sp_bindefault- 012O Á�Ö- §�� ÷x��. Á�Ö- NULL�  ¡2O R�� � 01& A�Á�Ö- §�.��. Á�Ö- NULL�  ¡24 Á�Ö� §� =�zÓ sysobjects U�V� R����.

.N�� #� �� WX YZ �D

• alter table 7 w� fillfactor, max_rows_per_page, reservepagegapC\ �� e�? primary key^ unique �( �] Í�z� §iE ±1���. �( �]� allpages-locked U�V�clustered §iE- Í�2� ¡å, C\ �� e�? U�V���� h�f ;</ ���.

31

alter table

• sp_chgattribute- 012O U�V ·� §iE �� max_rows_per_page ·� reservepagegap/  ¡2<^ U�V�� exp_row_size 2/  ¡2<^ fillfactor 2/ H�.��.

• §iE �� C\ �� e�? �y ¡å ±1���.

• allpage locking� data-only lockingZ� ·� K í��U�V� locking ­#/  ¡2� alter table �@/ 012O §iE- �Í�� ¡å. &¯� �1? 39 h�f�"locking ­#  ¡"/ ��2�D�.

• reorg rebuild �@/ Æ�2� � §iEv &dZ� ���� ¡å

• "� U�V ;</ 9:� C\ �� e�/ L§234sp_help �@/ Æ�.��. "� §iE ;</ 9:� C\�� e�/ L§234 sp_helpindex �@/ 01.��.

• C\ �� e�§ fillfactor, max_rows_per_page, reservepagegap/012O �y$ l? ­®Z� U�V R §iE� C\ 01/ ��� wx��.

• fillfactor� §iEv Í�� � h�f OÔ� C\/ nSfÌ +A D\� f^4 fillfactorv �fzf �x��. �e�? MN locking ­# ±1���.

• max_rows_per_page� ��� h�f^ §iE h�f� � - ��.��. allpages-locked U�V� d+�/ g�2� � ½� 01���.

• reservepagegap? Q h�f� jýh h�f� kl/ fA2O |E}Ö(extent) �{/ �2� �@ ±1.��.� e�? MN locking ­# ±1���.

C\ �� e�/ U�V$ §iE H�2O alter table Rreorg rebuild �@/ �2� d² ±1z¬¹ � wx��.

• ! 2-6? C\ �� e� R locking ­#� ��� �./ ^T���. alter table �@Z� U�V�  ¡z �.� U³2f�© z4 DEF U�V H�� 2? K�� �fzfÌ U�V 56� 2� ±1zf �x��. U�V� locking ­#�  ¡z e�� ��2© z4 � 2� 01���.

32

2A 9B: alter database – continue

� 2-6: )* "+ ,- � locking ./

• ! 2-7? Á�Ö� � Á�Ö- C\ �� e� 012� �$- ^T���.

� 2-7: 012 � )* "+ ,-� 34

max_rows_per_page0 exp_row_size� �[

• U�V max_rows_per_pagev �Az wÓ U�V� allpageslocking� data-only lockingZ�  ³z4 � 2? alter table...lock �@� U�V/ � �:� m02S � exp_row_size2Z�  ³���. exp_row_size� m0 � Æ����. ! 2-8� 2� �©  ³z�f ��z wx��.

� 2-8: max_rows_per_page5 exp_row_size6 �7

reservepagegap ��

• �? #� C\/ 012� �@? p+ h�f �{ �� |E}Ö(extent) �{ ­#Z� � C\/ �{.��. reservepagegapìý�� �)� �@� Q h�f- no ~¬¹ 2O Ô�z<^ �� �P� h�f ve�� �e h�f �{� ��h w© .��.

• U�V �� reservepagegap 2? sysindexes H�zW U�V locking ­#� allpages locking� data-only lockingZ�·� K í��  ¡� � ±1���. H�� 2/  ¡234alter table/ Æ�2S � DEF G�DH§ sp_chgattribute-01.��.

567" allpages datapages datarowsmax_rows_per_page " �o �o

reservepagegap " " "

fillfactor " " "

exp_row_size �o " "

567" 89: 89:; ��< =3max_rows_per_page 0 ´�SQ _c 255#S9 À4 SX?��.

reservepagegap 0 �z4 ¸S TU��.fillfactor 0 p ´�SR $�% &'��.

max_rows_per_page �� > ��? exp_row_size0 default exp_row_size percent" úX^ ü<( 3

255 1, í $� )ð ´�S

1-254 �K ZQ² @ ¦# 3

• _c À ô

• 2002/max_rows_per_page 3

33

alter table

• allpages-locked U�V� reservepagegap� clustered ìý���Ú fAz4 �� create table ·� alter table� fA� 2�M �D���.

\] ^_ (`a 4� B�C partition

• alter table �@� partition u/ 012O U�V/ partition24�v page chain� Í�zm� dD ci ÑÕ/ �= O) @fO h�f- jA D\ 01� wx��. � d5? h�fab/ òO� ci ��/ <YD*��. ·� U�V� ��� ¯K(Öv O) °�± Á �E ÔÕz w� ¡å ÃD� ÁEÂ� ���- kå� d² i/�� ab/ òO� ��/ <YD*��.

• ���- partitioned U�V� ·� partitioned U�V�,� m02� ¡å Adaptive Server- �µ ¨�� �A=> .��.

• U�V/ partition2� ¡å Adaptive Server� ¨y partition/��� ù partition �= � h�f- �{.��. S£�page chain? { H� partition� +,v ���. Adaptive Server� ùù� Ñe partition �= { H� h�f- Í�.��. ùpartition? &Å� � h�f- vfÓ wZm� partitioned U�V� unpartitioned U�VB� C\� �� o ��.��.

• 01&� Q U�V R U��- ��2� U�V/ M partition� wx��. U�V partition? U��- �d2f ./0 S£� ���� �Ò H�� �:§ { H� partition né wx��. �±� ��/ �=� ���- ci2S 12 U�V/partition.��.

• �9 partition� DEF U�V ·� U�V/ partition� ÷x��. text R image _� ��� U�V/ partition� wfÌ Adaptive Serverv text R image _/ H�2� ­#� ;</ 9:f �x��.

• U�V/ partition� �� truncate table �@ ·� sp_placeobjectDEF G�DH- � U�V� 01� ÷x��.

• U�V� partition -  ¡234 alter table� unpartition u/012O S£� MN page chain/ Ñ8� �y alter table�partition u/ 012O U�V/ �D partition.��.

• U�V/ unpartition2� ¡å MN Be G�DH� ¾� ¦�/ ���+.��. unpartition? G�DH- &dZ� ���+2f �x��.

34

2A 9B: alter database – continue

• alter table �@� unpartition u/ 012O U�V/ unpartition2� ¡å Adaptive Server� { H� partition� � h�f- ��� MN � h�f� �{/ =�2Ó page chain/ Ñ8.��. 8$ p+ page chain� v�� { h�f- �Ð24 Qh�f- ��2f �x��. U�V unpartition? ���- �d2f .34!.

IDENTITY b ��

• IDENTITY _/ U�V �v2� ¡å _ A�¬(P)v S£�� - 1� A¬� aÔk Ä> .��. �� v 10precision - 1/ 6$2� ¡å Adaptive Server� ) ÎDf- ��2Ó _/ �v2f �x��.

• IDENTITY _/ U�V �v2� ¡å Adaptive Server� �y$ l? d5/ �.��.

• MN IDENTITY _ 2� Í�� �ef U�V/ lock.��. U�V� �? � �� ��� ¡å � G�¯E� Y{� D\� ¼�� wx��.

• S£� ù � 1,� D52� Ó�� ¶� IDENTITY _2/ �{.��.

• ùù� ci ÑÕ/ U�V S¹.��. �? � ��w� IDENTITY _/ �v2S � (H dump transaction/ 012O ���Q�E� Ö×ØÙ �K- f���.

• U�V �/ ci� �@� Adaptive Server� @fO 2B�t? IDENTITY _ 2/ Í�.��. � 2? alter table 7� _ �= ��� MN Á�ÖB� å�2W sp_bindefault- 012O §�� MN Á�ÖB� å�.��.

B�C �cd �A

• add, drop ·� modify K�Ó lock 2� u? S£ U�V� Eì@-  ¡2� � �1.��. p+7� d+� _ �[� H �Y ��zf ���4 p+7 ��� w� 2� u� � ¶�� ��� ÷x��.

• select *- 012� �� G�DHv  ¡� U�V/ ��24with recompile üÙ/ 012oä¬ ��� _� 8$ set ^T^f �x��. 01&� � G�DH- R�2Ó �Í�=���� _/ ��D�> .��.

35

alter table

• U�V w� MN _/ R�� � ÷x��. ·� @fO noA _/ U�V� R�� ÷x��. '- t, 5_ U�V� 4g _/ R�24 ^�f _/ R�� ÷x��. ���Q�E� U�V/ R�234 drop table/ 01.��.

• �y� ¡å ��� m0v ��.��.

• _ R�

• NOT NULL _ �v

• �,Ô� alter table.. . modify �@

showplan/ 012O jA alter table �@� ��� m0v ���f L§.��.

• �� alter table �@� ��� m0- �;2� ¡å �� altertable�@(add, drop ·� modify)/ 0124  ¡� U�V �� locking ­#�  ¡/ fA� wx��.

• alter table� ��� m0- �2� ¡å Eì@-  ¡23�U�V� ��� ���Q�E� select into /bulkcopy/pllsortví�D �Az w> .��.

• partitioned U�V� Eì@-  ¡2Ó ��� m0v ���¡å Adaptive Server� �µ ¨�� ��z> .��.

• A� U�V� S£� C\ �� e�(max_rows_per_page,fillfactor *) R U�V §iEv ��z wx��.

• ��� m0v ��� alter table? Ö�<- �� �Í2f �x��.

• alter table/ 0124 CIS(Component Integration Services) �= Í�zÓ ��z� �Ï G¹D U�V� Eì@-  ¡� wx��. CIS� ��� AB� Component Integration ServicesUser's Guide- ��2�D�.

• d+� 7� ��� m0- �2<^ U�V X ·� �� integrity constraint- �v� ÷x��.

• d+� 7� ��� m0- �2<^ clustered §iE- Í�� ÷x��.

• NOT NULL _/ �v2� ¡å Á�Ö u/ fA=> .��.

36

2A 9B: alter database – continue

• allpages-locked U�V�� �� ̂_/ �v, R� ·� A� wx��. 2fÌ data-only locked U�V�� _/ �v, R� ·� A2S �� ��� wx��. � ��? ! 2-9��z wx��.

� 2-9: Data-only locked ����8 �9 :�, ;<, �'= � >? @A

clustered §iE� data-only locked U�V partitioned U�V� _/ �v, R� R A23� ¡å �y/ �� wx��.

a clustered §iE R�

b U�V(data-only locked)  ¡

c clustered §iE �Í�

• NOT NULL Java Å- _� �v� ÷x��. Sñ±Z�MN Java _? ¢Y NULL Á�Ö- vfW varbinary 7&_ ·� image ��� ��Z� H����.

• A/ �= ��� m0v ��� ¡å Java _� ��� partitioned U�V/ A� ÷x��. �� U�V/ unpartition� �y alter table �@/ Æ�2Ó U�V/ �D partition.��.

• §iE ·� �� integrity constraint� ì _/ R�� ÷x��. ì _/ R�234 §iE ·� �� integrity constraint- R�� �y ì _/ R�.��. &¯� �1? Transact-SQLUser's Guide- ��2�D�.

• Á�Ö2�^ õö� w� _/ R�� wx��. ·� jA_ fA� Á�Ö2? ={ _/ R�24 R����. §�� check �( �] ·� �� �( �]� w� _/ R�� ÷x��. �� å� check �( �] ·� �� �( �]/R�� �y _/ R�.��. sp_helpconstraint- 012O U�V w� MN �( �]/ #%2Ó sp_depends- 012O _ X Be �¦- #%.��.

• DEF U�V� _/ R�� ÷x��. ·� Sybase �C¬� R �� G�DH �= Í�zÓ 01z� 01& U�V� _/ R�� ÷x��.

@AB CD

all pages locked, partitioned 12

allpages locked, unpartitioned 12

data-only locked, partitioned 12

data-only locked, unpartitioned 12

clustered " " �o "

nonclustered " " " "

37

alter table

• U�V� kw� ¡å +í±Z� S£ _� ��� ��/�� ��Z�  ¡� wx��. U�V� k wf �? ¡å �Ò ��� ��Z� �D±Z�  ³� w� =�� ��Z� ��� ��/  ¡� wx��.

• �y$ l� � wx��.

• � IDENTITY _ �v

• S£� IDENTITY _ R�

• S£ IDENTITY� ÂS A

&¯� �1? Transact-SQL User's Guide- ��2�D�.

• U�V� Eì@-  ¡24 Eì@ I�Öv Kv2m� � U�V ܯE2� S£� �� G�DHv �y Æ�� ��� G�DHv �Aõ¿���. ��� �� Be �� G�DH ·� ��  ¡� ��� �� Aõ¿ �� )� �Ú �&v �Í� wx��. � Be Åv U�V� A� Eì@- ��2¬¹ Be Å- 6��Ö=> .��.

B�C �cd �Aa 4� �

• Ö×ØÙ �� alter table/ Æ�� ÷x��.

• U�V� Eì@-  ¡24 bcp- 012O ÌN I6� ��2f �/ wx��. � I6? U�V� "� Eì@� o �Y U³zf �� U�V Eì@- 01� ¬ wx��.

• check �( �]$ �Ú NOT NULL _/ �v� wfÌAdaptive Server� S£� ��� �= �( �]/ L§2f�x��.

• U�V clustered §iEv wÓ ·� ÑÕ ��� m0v ��� ¡å alter table .. . add, drop ·� modify �@/ 012O U�V� locking ­#/  ¡� ÷x��. �� �y$ l� � wx��.

a clustered §iE R�

b U�V� Eì@  ¡

c clustered §iE �Í�

• U�V =�� Ä�v Z�¿z w� ¡å U�V� Eì@-  ¡� ÷x��.

text ) image b �Aa 4� �

• NULL 2/ 012� text ·� image _Ì �v� wx��.

38

2A 9B: alter database – continue

NULL� é: 2Ì ��2¬¹ text ·� image _/ �v234å� NULL 2/ 012� _/ �v.��. K �y � _/NULL� é: 2Z� 6��Ö.��.

• _? text ��� ��� �y$ l? ��� ��Z�Ì  ¡� wx��.

• char

• varchar

• unichar

• univarchar

• nchar

• nvarchar

• _? image ��� ��� varbinary ��� ��Z�Ì  ¡� wZW _? NULL� é: ���Ì ��� wx��.

• U�V� k w� ¡åÌ text ·� image _/ =�� ����� ��Z�  ¡� wx��.

• d+� 7� � text ·� image _/ �v2Ó S£� text ·�image _/ R�� ÷x��.

• _/ text ·� image ��� ��Z� A� ÷x��.

locking ef �A

• alter table/ 0124 locking ­#/ �y$ l�  ¡� wx��.

• allpages� datapages� ·� K í��  ¡

• allpages� datarows� ·� K í��  ¡

• datapages� datarows� ·� K í��  ¡

• allpages locking� data-only locking ­#Z� ·� K í�� ¡2S � =�� U�V� partitionz<^ §iE Aµ� �µ Aµ� ��� ¡å� sp_dboption/ 012O ���Q�E üÙ select into/bulkcopy/pllsort- true� �A� �y ���Q�E� checkpoint- Æ�.��.

• allpages locking� data-only lockingZ� ·� K í�� locking­#/  ¡� �� Ö×ØÙ �K- I62� dump transaction�@/ 01� ÷Zm� (H �Å ���Q�E 'G- �=> .��.

39

alter table

• alter table...lock/ 012O U�V� locking ­#/ allpages locking� data-only lockingZ� ·� K í��  ¡24 Adaptive Server� U�V� ��� h�f m0ñ/ ÌX��.�ä� U�V� w� ¯K(Ö� ��� h�f �Å m0ñ� tó aÔ� C\� w> .��. §iE- ���234 §iEv w� ¯K(Ö C\� w> .��.

data-only locked U�V� clustered §iE� ��� h�f � �G �r/ vs��. clustered §iEv w� U�V/allpages locking� data-only-lockingZ�  ¡24 clustered§iE o �? C\� ��2© ���. ��� C\? §iE ì� ÂS �ä ����.

sp_spaceused- 0124 U�V� "� �f2Ó w� C\�ÂS- L§� wZW sp_helpsegment- 0124 U�V/H�� � 01� w� C\/ L§� wx��.

• U�V� locking ­#/ allpages locking� datapages lockingZ� ·� K í��  ¡� ¡å ��� �� m0z4 C\ �� e�� U�V ±1zÓ, ��� �� �Í�z4 C\ �� e�� §iE ±1���. data-only locking ­#� �� ­®Z�  ¡24 ��� h�f� m0zf �ZW C\�� e�¬ ±1zf �x��.

• U�V� partitionz w� ¡å, locking ­#/  ¡24 ��= partition � partition m0v Æ�zW m0v Æ�z� d² partition w� ���- kª2f �x��.

• U�V� locking ­#/  ¡� � alter table...lock �@? C�� �ef U�V exclusive lock/ ±1.��.

• alter table...lock/ 012O datapages locking� datarows lockingZ�  ¡24 ��� h�fv m0z<^ §iEv ���zf �Ó DEF U�VÌ 6��Ö���.

• �� 01&v DEF/ 012Ó w/ � locking ­#/  ¡24 01& 56 �y$ l? ;</ ò wx��.

• U�V/ ܯE2� G�DH ÃD �� ¾� ¦�? �y Æ�� � �D ��+���.

• U�V/ 012� Z� �� �7 G�DH� �y p¦-¦e2S � �D ��+���.

40

2A 9B: alter database – continue

• U�V/ 012� =D 7: Ö×ØÙ� B����.

��! �À m0 56/ �2� d² locking ­#/  ¡24 U�V� æY� wx��. �À m0� å� U�V �� AB- áyZ�� �zW U�V AB- ø�D\$ �/ B�S D52� D\ 0�� lock/ ±12f �Ó alter table...lock �@/ D5� 5? D\ �Ì no~x��.

Java-SQL b ��

• ���Q�E Javav Z�¿z w�4 01&� Java-SQL_/ U�V �v� wx��. &¯� �1? Java in Adaptive Server Enterprise- ��2�D�.

• � Java-SQL _� ��� `ÒE(datatype)� Serializable ·�Externalizable §�h�E- �"=> .��.

• Java-SQL _/ U�V �v2� ¡å Java-SQL _/ �y$l� fA� ÷x��.

• foreign ì� fA

• references u� fA

• UNIQUE e�/ vf¬¹ fA

• Primary ì� fA

• in row- fA� ¡å H�� 2? ��� �P� h�f ÂS�ä 16K �Ö- 6$� ÷x��.

• off rowv fA� ¡å� �y$ lx��.

• check �( �]� _/ ��� ÷x��.

• distinct- fA2� select� _/ ��� ÷x��.

• e��^ group by u� kª ÑÕ& _/ fA� ÷x��.

56

7� alter table ��� Á�Ö �A? U�V ¼�&i��. � ��? ���Q�E ¼�& �Ð� �� 0�© #¬� ÷x��. ���Q�E ¼�&� setuser �@/ 012O U�V ¼�&- ��� wx��. DEF ��&¬ 01& U�V/  ¡� wx��.

�# $% "# ��

SQL92 Transact-SQL ÎÍ ��� �� >* XËR Ë�É 1Í "��ê D *+, X9 ��� ��"4 ��2n�o.

41

begin...end

89 �� – create index, create table, dbcc, drop database, insert

��� ���� – sp_chgattribute, sp_help, sp_helpartition, sp_rename

begin...end�� if...else� l? �[ � �v �ű§ �� ;</ 9� w

¬¹ +�� SQL 7/ ��D*��.

�� begin statement block

end

���� statement blockbegin R end� �OA +�� �7i��.

�� 1 begin R endv ÷Z4 if �]? 2^� SQL 7Ì Æ�� wx��.

if (select avg(price) from titles) < $15 begin update titles set price = price * $2 select title, price from titles where price > $28 end

�� 2 begin R endv ÷Z4 print 7? Æ�zf �/ i��.

create trigger deltitle on titles for delete as if (select count(*) from deleted, salesdetail where salesdetail.title_id = deleted.title_id) > 0 begin rollback transaction print "You can’t delete a title with sales." end else print "Deletion successful--no sales for this title."

�� • begin...end V¹? �� begin...end V¹ � ��� wx��.

42

2A 9B: alter database – continue

56

7� begin...end ��� Á�Ö �A? MN 01&�W �ä� %¬� 01 ��� ��2f �x��.

89 �� – if...else

begin transaction�� 01& A� Ö×ØÙ� D5 �:- !D.��.

�� begin tran[saction] [transaction_name]

���� transaction_name� Ö×ØÙ �{� �[i��. Ö×ØÙ �[? #%& õö/ �ä> .��. Ð,� begin transaction/commit ·� begin transaction/rollback �� 7�Ì Ö×ØÙ �[/ 01.��.

insert 7 �� Ö×ØÙ/ �D±Z� D5.��.

begin transactioninsert into publishers (pub_id) values ("9999")

commit transaction

�� • SQL 7 ·� DEF G�DH- begin transaction R commit 7 � �� Ö×ØÙ/ A�.��. ÑË Ö×ØÙ M�� �A�¡å Adaptive Server� �y$ l? �7 � begin transaction/ ^D±Z� U�.��. delete, insert, open, fetch, select Rupdate. 01&� commit/ 012O �D±Z� Ö×ØÙ/ B�=> .��.

• Ö×ØÙ� +, ·� �,- _¼234 rollback �@/ 01.��. rollback �@? í�D Ö×ØÙ � ^T^> 2W Ä�� �� Ö×ØÙ/ TI(rollback)� ÷x��.

56

7� begin transaction ��� Á�Ö �A? MN 01&�W �ä� %¬� 01 ��� ��2f �x��.

89 �� – commit, rollback, save transaction

�# $% "#SQL92 Transact-SQL ÎÍ

�# $% "#SQL92 Transact-SQL ÎÍ

43

break

break�� while �G- B�.��. break� BB if UEÖ �= Z�¿���.

�� while logical_expression statement

break statement

continue

���� logical_expression

TRUE, FALSE, NULL/ return2� !"#(_ �[, Y �<^ÕÛ ·� kÖ ÑÕ&� Ñ8� _ �[$ Y � �. ·� �ã¾�)i��. /� !"# select 7� ��z w� ¡å select7/ �U� �)���.

�� vÏ� $30 9Ì�4 vÏ/ 7�  ¡��. K�Ó �� vÏ/ �,.��. vÏ� $50�<^ �B� 5? ¡å while �G-�D52Ó vÏ/ �D 7�  ¡��. �� vÏ� $50- 6$24 while �G- B�2Ó ÎDf- ��.��:

while (select avg(price) from titles) < $30 begin update titles set price = price * 2 select max(price) from titles if (select max(price) from titles) > $50 break else continue end begin print "Too much for the market to bear"

end

�� • break� while �G- B�.��. �G� ô/ !D2� end ìý� �y ^T^� 7� Æ����.

• � �Y� while �Gv ��z w� ¡å �, break� �y Ð, �G� B����. å� �, �G� end �y ^T^�MN 7/ Æ�2Ó Ð, �G- �D5.��.

44

2A 9B: alter database – continue

56

7� break ��� Á�Ö �A? MN 01&�W �ä� %¬� 01 ��� ��2f �x��.

89 �� – continue, while

case�� 2 !"#� 01z� Á�^ 01� w� �] SQL !"#

/ f�.��.

�� casewhen search_condition then expression[when search_condition then expression]...[else expression]

end

case ) g ��:

case expressionwhen expression then expression[when expression then expression]...[else expression]

end

���� casecase !"#/ D5.��.

whenÝÞ �] ·� kª23� !"#� ¢ ^T>��.

search_condition�,� 8$ �� �]/ �A2� � 01���. case !"#�� ÝÞ �]? where u�� ÝÞ �]$ �0.��. ÝÞ �]? Transact-SQL User’s Guide &¯2© ��z wx��.

thencase� 8$ 2/ fA2� !"#� ¢ ^T>��.

expression_ �[, Y , � , �ã¾� ·� ÕÛ�^ kÖ ÑÕ&� Ñ8� _ �[, Y R � � �.i��. !"# �� &¯� �1? 179 h�f� "!"#"/ ��2�D�.

�# $% "#SQL92 Transact-SQL ÎÍ

45

case

�� 1 authors U�V� MN H&- �,2Ó jA H&v <½2� ¬D- fA.��.

select au_lname, postalcode, case when postalcode = "94705" then "Berkeley Author" when postalcode = "94609" then "Oakland Author" when postalcode = "94612" then "Oakland Author" when postalcode = "97330" then "Corvallis Author" end from authors

�� 2 discounts U�V� lowqty ·� highqty _ �� ¨yZ� ^T^� NULL� é: 2/ return.��.

select stor_id, discount, coalesce (lowqty, highqty)from discounts

�� 3 � '�� '� 2- 5�2� �� ­®i��.

select stor_id, discount, case when lowqty is not NULL then lowqty else highqty endfrom discounts

�� 4 titles U�V� titles R type/ �,.��. Ê ��� UNDECIDED�4 nullif� NULL 2/ return.��.

select title, nullif(type, "UNDECIDED")from titles

�� 5 � '�� '� 4- 5�2� �� ­®i��.

select title, case when type = "UNDECIDED" then NULL else type endfrom titles

46

2A 9B: alter database – continue

�� • case !"#/ 0124 if 7 �� when...then ��- 012O ÝÞ �]/ !"� wZm� !X SQL !"#� \p=s��.

• SQL� !"#� 01� w� MN �:� case !"#/01� wx��.

• ±¬ � !"#? null ìý� Ð� 2�> .��. '- t4 �y$ lx��.

select price, coalesce (NULL, NULL, NULL)from titles

�y ) ÎDfv ^T>��.

All result expressions in a CASE expression must not be NULL.

• ¾�v �#� ��� ��/ Ìt4 1� "DEF R 01& A� ��� ��"� %. M� !"#� ��� ��� ��� ¨� case !"# 8$� ��� ��? ��� �� ¦\�= 8A���. char R int� l� Adaptive Serverv ^D±Z�  ³� ÷� ��� ��/ fA24 ¾�� �&v �Í.��.

• coalesce� case !"#� (� � �#i��. '� 3? coalesce7/ Í�2� �� ­®/ ��.��.

• coalesce �y� ±¬ g� !"#� ^T^> .��. '- t4 �y$ lx��.

select stor_id, discount, coalesce (highqty)from discounts

� ¡å �y$ l? ) ÎDfv ^T>��.

A single coalesce element is illegal in a COALESCE expression.

• nullif� case !"#� (� � �#i��. '� 5� nullif- 5�2� �� ­®/ ^T���.

56

�# $% "#SQL92 Transact-SQL ÎÍ

47

checkpoint

7� case ��� Á�Ö �A? MN 01&�W �ä� %¬� 01 ��� ��2f �x��.

89 �� – select, if...else, where �

checkpoint�� MN �� h�f(@fOZ� �� � 6��� h�f)- �

��Q�E Á �E S¹.��.

�� checkpoint

DEF ÅÂ�§Ö +A Y�÷� "� ���Q�E w� MN oÈ h�f- ���Q�E Á �E S¹.��.

checkpoint

�� • checkpoint� j � ³¡� '­ pZ�Ì 01���. '- t Adaptive Server� ���Q�E üÙ/ ��A� �01&© checkpoint �@/ Æ�2¬¹ .��.

• DEF G�DH§ sp_dboption/ 012O ���Q�E üÙ/  ¡� �@� checkpoint üÙ/ 01.��.

hi jkl.,

• checkpoint �@ �= ��� ÅÂ�§Ö� &d ÅÂ�§Ö-BC.��. � ÅÂ�§Ö� �� 31 m� D\/ �= �A� w� 2/ SíZ� Adaptive Server �= ¦Õ� \ÏZ� �Í.��.

• checkpoint� C�� Ö×ØÙ� ���Q�E Á �E C�2© S¹z� f�/ #%2O &d m� G�¯E- p�.��. ÅÂ�§Ö D\? Adaptive Server� 56 1À �ä �[fÌ +í±§ checkpoint� 16 vÀ ¼����.

• &d checkpoint \Ï? DEF U�V§ syscurconfigs w� DEF d5 R m� \Ï 2 �ä Adaptive Server �= 8A���. m� \Ï? DEF m� ¼�z� �� D\/ fA2O checkpoint Q¬- 8A.��. DEF G�DH§ sp_configure- Æ�2O � 2/ ��A.��.

48

2A 9B: alter database – continue

• �P �£ D\ d² A� 56� ��� ÃD w� MN Z�P¤ ¥/ k¦ w�4 A� 56? ÅÂ�§Ö 56/ Sd.��. ÅÂ�§Ö 56? ���Q�E- Ý0� w�f8A.��.

A� 56� 8$ �Í� ÅÂ�§Ö- 5� 6789:äÓ .��. A� 56� ���Q�E Á �E oÈ h�f- �9 S¹`S �7 �)� ÅÂ�§Ö� �? oÈ h�f S¹/ 2f �x��. A� 56? ���Q�E� m� e¬-<YD� wx��.

56

7� checkpoint ��� Á�Ö �A? ���Q�E ¼�&�W �� 0�© #¬� ÷x��.

89 ��� ���� – sp_configure, sp_dboption

close�� Z�¿� Ä�- §x��.

�� close cursor_name

���� cursor_name§Z3� Ä�� �[i��.

authors_crsr�ä� Ä�- §x��.

close authors_crsr

�� • Æ�� close �@? Ä�� 8$ set/ �<.��. B�� Ä� �=�� Ä� �:v 8$ set � A�zf �x��.

• Ä�v �9 §k<^ £�2f �� ¡å� Adaptive Server� ) ÎDf- return.��.

56

7� close ��� Á�Ö �A? MN 01&�W �ä� %¬� 01 ��� ��2f �x��.

89 �� – deallocate cursor, declare cursor, fetch, open

�# $% "#SQL92 Transact-SQL ÎÍ

�# $% "#SQL92 +£ (� >*

49

coalesce

coalesce�� �], SQL !"#/ f�2W case !"#/ ��2O 2 !"#

� 01� w� MN �: 01� wx��.

�� coalesce(expression, expression [, expression]...)

���� coalesce^_� !"#/ �v� �y NULL� é: { H� 2/ return.��. MN !"#� NULL§ ¡å coalesce� NULL/ return.��.

expression_ �[, Y , � , �ã¾� ·� ÕÛ�^ kÖ ÑÕ&� Ñ8� _ �[, Y R � � �.i��. !"# �� &¯� �1? 179 h�f� "!"#"/ ��2�D�.

�� 1 discounts U�V� lowqty ·� highqty _ �� ¨yZ� ^T^� NULL� é: 2/ return.��.

select stor_id, discount, coalesce (lowqty, highqty)from discounts

�� 2 � '�� '� 1/ 5�2� �� ­®i��.

select stor_id, discount, case when lowqty is not NULL then lowqty else highqty endfrom discounts

�� • coalesce !"#/ 0124 when...then ��- 012� �� \p� kª� ÝÞ �]/ !"� wZm� !X SQL !"#� \p=s��.

• SQL� !"#� 01� w� MN �:� coalesce !"#/ 01� wx��.

• coalesce !"#� 8$ �� ±¬ 2^� NULL� é: 2/ return=> .��. '- t4 �y$ lx��.

select price, coalesce (NULL, NULL, NULL)from titles

� ¡å �y$ l? ) ÎDfv ^T>��.

All result expressions in a CASE expression must not be NULL.

50

2A 9B: alter database – continue

• ¾�v �#� ��� ��/ Ìt4 1� "DEF R 01& A� ��� ��"� %. M� !"#� ��� ��� ��� ¨� case !"# 8$� ��� ��? ��� �� ¦\�= 8A���. char R int� l� Adaptive Serverv ^D±Z�  ³� ÷� ��� ��/ fA24 ¾�� �&v �Í.��.

• coalesce� case !"#� (� � �#i��. '� 2� coalesce7/ Í�2� �� ­®/ ��.��.

• coalesce �y� ±¬ g� !"#� ^T^> .��. '- t4 �y$ lx��.

select stor_id, discount, coalesce (highqty)from discounts

� ¡å �y$ l? ) ÎDfv ^T>��.

A single coalesce element is illegal in a COALESCE expression.

56

7� coalesce ��� Á�Ö �A? MN 01&�W �ä� %¬� 01��� ��2f �x��.

89 �� – case, nullif, select, if...else, where �

commit�� 01& A� Ö×ØÙ� B� �:- !D.��.

�� commit [ tran | transaction | work ] [transaction_name]

���� tran | transaction | workÖ×ØÙ ·� 56/ Ä��f O,- fA.��. tran, transaction,work- fA� ¡å transaction_name¬ fA� wx��.

transaction_nameÖ×ØÙ �{� �[i��. #%& �� õö/ X => .��. Ð,� begin transaction/commit ·� begin transaction/rollback�� 7�Ì Ö×ØÙ �[/ 01.��.

�# $% "#SQL92 Transact-SQL ÎÍ

51

commit

H& �= royaltyper ¢¸/ 6��Ö2Ó ¨ � savepoint§percentchanged- ci2Ó � Ê� vÏ/ 10% §Y� ¡å H&�§¯ i © A¬ ;<� w�f �ª.��. � Ö×ØÙ?rollback transaction �@� w� savepoint� TI(roll back)���

begin transaction royalty_change update titleauthor set royaltyper = 65 from titleauthor, titles where royaltyper = 75 and titleauthor.title_id = titles.title_id and title = "The Gourmet Microwave" update titleauthor set royaltyper = 35 from titleauthor, titles where royaltyper = 25 and titleauthor.title_id = titles.title_id and title = "The Gourmet Microwave" save transaction percentchanged

update titles set price = price * 1.1 where title = "The Gourmet Microwave" select (price * total_sales) * royaltyper from titles, titleauthor where title = "The Gourmet Microwave" and titles.title_id = titleauthor.title_id rollback transaction percentchanged commit transaction

�� • SQL 7 ·� DEF G�DH- begin transaction R commit 7 � �� Ö×ØÙ/ A�.��. ÑË Ö×ØÙ M�� �A�¡å Adaptive Server� �y$ l? �7 � begin transaction/^D±Z� U�.��. delete, insert, open, fetch, select R update.01&� commit/ 012O �D±Z� Ö×ØÙ/ B�=>.��.

• Ö×ØÙ� +, ·� �,- _¼234 rollback �@/ 01.��. rollback �@? Ö×ØÙ � ^T^> .��. commit �@/ Æ�� �� Ö×ØÙ/ TI(roll back)� ÷x��.

52

2A 9B: alter database – continue

• Ö×ØÙ� "� Z�¿zf �? ¡å commit ·� rollback 7?Adaptive Server ;</ 9:f �x��.

56

7� commit ��� Á�Ö �A? MN 01&i��.

89 �� – begin transaction, rollback, save transaction

compute ��� ¾� 8$ �v �Z� !Dz� �( 2/ Í�.��.

�� start_of_select_statementcompute row_aggregate(column_name)

[, row_aggregate(column_name)]... [by column_name [,column_name]...]

���� row_aggregate�y �� 2^i��.

column_name_� �[i��. � �[? �U ² ��z> .��. sum Ravg� : _Ì 01� wx��.

2^� compute u? Kï _� d+� s. O) g� s¦ � (aggregate function)- ±1� wx��('� 2� 3 ��). ��Y� Kï/ Í�234 � �Y� compute u/ 01.��('� 5 ��).

�# $% "# ��

SQL92 +£ (� >* commit transaction D commit tran �¯9 F# Transact-SQL ÎÍ.��.

E" �F

sum �((§)Q J� 39 ?�

avg �((§)Q J� 39 ,-min �9 _` 3

max �9 _c 3count �Q J� 39 x(

53

compute !

by2� Kï �� � s¦ 2/ ¦Õ.��. by ¢¸� 2�  ¡� �@� � s¦ 2� Í����. by- 012� ¡å í�Dorder by- 01=> .��.

by �y � �Y� ¢¸� ^_z4 Kï/ 2� KïZ� �Ô2Ó ù Kï X� � - ±1.��.

�� 1 $12- 6$2� O) B&� ��Ê� vÏ .¦- ¦Õ.��.

select type, price from titles where price > $12

and type like "%cook" order by type, price

compute sum(price) by type

type price --------- ------------ mod_cook 19.99 sum ------------ 19.99 type price --------- ------------ trad_cook 14.99 trad_cook 20.95 sum ------------ 35.94 (5 rows affected)

�� 2 $12- 6$2� O) B&� ��Ê �� vÏ R ��(advances)� .¦- ¦Õ.��.

select type, price, advance from titles where price > $12

and type like "%cook" order by type, price

compute sum(price), sum(advance) by type

type price advance --------- --------- ------------ mod_cook 19.99 0.00 sum sum --------- ------------ 19.99 0.00

54

2A 9B: alter database – continue

type price advance --------- --------- ------------ trad_cook 14.99 8,000.00 trad_cook 20.95 7,000.00 sum sum --------- ------------ 35.94 15,000.00 (5 rows affected)

�� 3 $12- 6$2� O) B&� ��Ê� vÏ R �� ���.¦- ¦Õ.��.

select type, price, advance from titles where price > $12

and type like "%cook" order by type, price

compute sum(price), max(advance) by type

type price advance --------- --------- ------------- mod_cook 19.99 0.00 sum --------- 19.99 max ------------- 0.00

type price advance --------- --------- ------------- trad_cook 14.99 8,000.00 trad_cook 20.95 7,000.00 sum --------- 35.94 max ------------- 8,000.00 (5 rows affected)

�� 4 type R pub_id- �Ô2Ó B& R �«0 ID- �.2O ¬�­ �±� vÏ .¦- ¦Õ.��.

select type, pub_id, price from titles where price > $10

and type = "psychology" order by type, pub_id, price

55

compute !

compute sum(price) by type, pub_id

type pub_id price ------------ --------- ----------- psychology 0736 10.95 psychology 0736 19.99 sum --------- 30.94

type pub_id price ------------ --------- --------- psychology 0877 21.59 sum --------- 21.59(5 rows affected)

�� 5 type R pub_id �� .¦- ¦Õ2Ó ·� $10- 6$2�¬�­ �±� �Å .¦- ¦Õ.��.

select type, pub_id, price from titles where price > $10

and type = "psychology" order by type, pub_id, price compute sum(price) by type, pub_id compute sum(price) by type

type pub_id price ------------ --------- --------- psychology 0736 10.95 psychology 0736 19.99 sum --------- 30.94

type pub_id price ------------ --------- --------- psychology 0877 21.59 sum --------- 21.59 sum --------- 52.53 (6 rows affected)

56

2A 9B: alter database – continue

�� 6 $10- 6$2� ��Ê� vÏ R ��� �Å .¦- ¦Õ.��.

select type, price, advance from titles where price > $10

and type like "%cook" compute sum(price), sum(advance)

type price advance --------- ----------- -------------- mod_cook 19.99 0.00 trad_cook 20.95 8,000.00 trad_cook 11.95 4,000.00 trad_cook 14.99 7,000.00 sum sum ----------- -------------- 67.88 19,000.00 (5 rows affected)

�� 7 ��Ê� vÏ .¦ R !"# 01� vÏ� .¦- ¦Õ.��.

select type, price, price*2 from titles

where type like "%cook" compute sum(price), sum(price*2)

type price ------------ -------------- ------------ mod_cook 19.99 39.98 mod_cook 2.99 5.98 trad_cook 20.95 41.90 trad_cook 11.95 23.90 trad_cook 14.99 29.98 sum sum ============= ============ 70.87 141.74

�� • compute u/ 0124 8$ set� Y¯ � R �( �/ ê wx��. 2� Kï �� �( 2/ ¦Õ� wZW d+ Kï �= � �Y� s¦- ¦Õ� wx��.

• by- 012f �Ó compute- 012O �Å .¦, �Å g */Í�� wx��. by- 012f �Ó compute ìý�- 012� ¡å order by� �, 0¢i��. '� 6/ ��2�D�.

57

compute !

• compute by- 012� ¡å order by u¬ 01=> .��. compute by �y ^_� _? order by �y ^_� _$ d+2<^ � _� 2� s.� z> 2W, ®¯� ��¯� ¶�� ^_zÓ d+� !"#Z� D52W °� !"#¬ Í]=�� ² ���. '- t order by u� �y$ l? ¡å

order by a, b, c

compute by u? �y �� 2^(·� M)v � wx��.

compute by a, b, ccompute by a, bcompute by a

� �m

• Ä� �� D compute u/ 01� ÷x��.

• �( 2? !"# R _ �= ¦Õ� wx��. compute u^T^� MN !"# ·� _? select ¸¹ ^T^> .��.

• _ �[ �� v�(alias)/ compute u w� � s¦� §&� 01� ÷x��. 2fÌ compute� select ¸¹, order by uR by u�� 01� wx��.

• d+� �7� select into- compute u� 01� ÷x��.computev ��� 7? +í±§ U�V/ Í�2f �S �7i��.

• compute u� group by u/ ��2� ¡å

• compute u? 256 �Y� s¦- ��� ÷x��.

• group by u? 256 �Y� _/ ��� ÷x��.

• compute u ��� _� 0�� 255 �ÖB� 04 ² ���

n�o 2(p)M� J<Jq compute rs

• +í±Z� s¦ � (Aggregate function)� U�V� �,� 2 ·� ù Kï �= p+ 2/ Í�2W � �( 2? ��� _� !D���. '- t4 �y$ lx��.

select type, sum(price), sum(advance)from titleswhere type like "%cook"group by typetype------------- --------- ---------- mod_cook 22.98 15,000.00 trad_cook 47.89 19,000.00

(2 rows affected)

58

2A 9B: alter database – continue

• compute u? 2^� �@/ 012O Y¯ R �( �/ ÝÞ� wx��. '- t4 �y$ lx��.

select type, price, advancefrom titles where type like "%cook" order by type compute sum(price), sum(advance) by typetype price advance ---------- ---------- ---------------- mod_cook 2.99 15,000.00 mod_cook 19.99 0.00

Compute Result: ---------------------- ----------------- 22.98 15,000.00 type price advance ---------- ---------- ---------------- trad_cook 11.95 4,000.00 trad_cook 14.99 8,000.00 trad_cook 20.95 7,000.00

Compute Result: ---------------------- ----------------- 47.89 19,000.00 (7 rows affected)

• ! 2-10? ��$ �Ú ��� �� compute u� Kï/ ^T���.

� 2-10: compute by B � CD EF �

G H IJK LM ��

259 compute �, Ý � 259 r; *e À 1, 2, 4, 6, 7

259 compute �, �� � � ��� 259 r; *e À 3

� �d9 compute �, Ý : �� � compute �� 259 r; *eÀ, Ö/Q ]. 5�/ r; *e À

259 compute �Q �� �� J� !ã Ý : ¿V

� �d9 compute �, �� �� � compute �� 259 r; *eÀ, ��Q �� r; *e À��� w§Q �Å

5

59

compute !

#/t�h �u

• �P �/¼7& �Ô Aµ ¶�v �:z w� ¡å compute� fA� _ w� ���� �/¼7&- �Ô2f �x��.'- t, �y$ l? ���v wx��.

select * from groupdemolname amount ---------- ------------------ Smith 10.00 smith 5.00 SMITH 7.00 Levi 9.00 Lévi 20.00

lname �= compute by� �y 8$- �.��.

select lname, amount from groupdemo order by lname compute sum(amount) by lname lname amount ---------- ------------------------ Levi 9.00

Compute Result:------------------------ 9.00

lname amount ---------- ------------------------ Lévi 20.00

Compute Result:------------------------ 20.00

lname amount ---------- ------------------------ smith 5.00 SMITH 7.00 Smith 10.00 Compute Result:------------------------ 22.00

�/¼7& R ܱÖ- �Ô2f �� �P d+� ¾�- �¡å �y 8$v Í����.

60

2A 9B: alter database – continue

lname amount ---------- ------------------------ Levi 9.00 Lévi 20.00

Compute Result:------------------------ 29.00

lname amount ---------- ------------------------ smith 5.00 SMITH 7.00 Smith 10.00

Compute Result:------------------------ 22.00

56

89 �� – group by � having �, select

'( – avg, count, max, min, sum

connect to...disconnect �� fA� �P Ñ82Ó Ñ8� �P� Ñ8/ =�.��.

CIS(Component Integration Services) �1

�� connect to server_namedisconnect

���� server_namepassthrough Ñ8� ��� �Pi��.

�� 1 SYBASEä� �P passthrough Ñ8/ �A.��.

connect to SYBASE

�� 2 Ñ8� �P� Ñ8/ =�.��.

disconnect

�# $% "#SQL92 Transact-SQL ÎÍ

61

connect to...disconnect

�� • connect to� passthrough Ñ8� ��� �P- fA.��. passthrough M�- 0124 �Ï �P� Ó� ÑÕ/ �� wx��.

• server_name? sysservers U�V w� �P `ÒE� �Öý �[� A�� �P� �[� z> .��.

• 01&- ��2O server_name Ñ8/ �A2� ¡å CIS(Component Integration Services)� �y #%& �� 2^- 01.��.

• sysattributes ��� �Ï �K§ v�(alias)

• 01& �[ R VU

¡å M, fA� �P Ñ8� ÷Z4 Adaptive Server� ) ÎDf- return.��.

• �Ï �P �v� ��� &¯� 0¢? sp_addserver- ��2�D�.

• passthrough Ñ8/ �A� � Ñe±§ � àEÖv �z� ¡å CIS(Component Integration Services)� Transact-SQLÔ-S R ��+)- �D.��. CIS(Component IntegrationServices)� 7/ fA� �P� � �P� �y, Open Client§�h�Ev §#� wÓ `ä��Ö G�K¥Z� return� w� �#Z� 8$-  ³.��.

• connect to �@ �= Í�� Ñ8/ B�234 disconnect �@/ 01.��. � �@? connect to- 012O Ñ8/ �A��Ì 01� wx��.

• disconnect �@? disc� òO� 01� wx��.

• connect tov �� Æ�zf �Ó �Pv �Ï �P Ñ8zf�? ¡å disconnect �@? )- return.��.

56

7� connect to �@� 01 ��? DEF ��& �= �D±Z� Y§z> .��. �7? �y$ lx��.

grant connect to user_name

DEF ��&� master ���Q�E� public �� Ñ8 ��/Y§ ·� _¼� wx��. DEF ��&v jA 01& �=connect to ��/ Y§ ·� _¼23� ¡å � 01&� master ���Q�E� �� 01&O> 2W DEF ��&� public� �y$ l� ��/ (H _¼=> .��.

�# $% "#SQL92 Transact-SQL ÎÍ

62

2A 9B: alter database – continue

use mastergorevoke connect from publicgosp_adduser fredgogrant connect to fredgo

89 �� – create existing table, grant

��� ���� – sp_addserver, sp_autoconnect, sp_helpserver, sp_passthru, sp_remotesql, sp_serveroption

continue�� while �G- �D5.��. continue� BB if UEÖ �= Z�¿

���.

�� while boolean_expression statement

break statement

continue

�� vÏ� $30 9Ì�4 vÏ/ 7�  ¡��. K�Ó �� vÏ/ �,.��. vÏ� $50�<^ �B� 5? ¡å while �G-�D52Ó vÏ/ �D 7�  ¡��. �� vÏ� $50- 6$24 while �G- B�2Ó ÎDf- ��.��:

while (select avg(price) from titles) < $30 begin update titles set price = price * 2 select max(price) from titles

if (select max(price) from titles) > $50 break else continue end

begin print "Too much for the market to bear" end

63

continue

�� • continue� continue �y ^�� MN 7/ ]s²Ó while �G- �D5.��.

56

7� continue ��� Á�Ö �A? MN 01&�W �ä� %¬� 01��� ��2f �x��.

89 �� – break, while

�# $% "#SQL92 Transact-SQL ÎÍ

64

3 ���� ��: create database – create schema

create database�� � ���Q�E- �.��.

�� create database database_name [on {default | database_device} [= size]

[, database_device [= size]]...] [log on database_device [= size]

[, database_device [= size]]...][with {override | default_location = "pathname"}][for {load | proxy_update}]

���� database_name� ���Q�E� �[i��. #%& õö/ X => 2W   v � ÷x��.

on���Q�E� �:� ÂS- ^T���.

defaultsysdevices.status !D� �� create databasev Á�Ö Á �E � ���Q�E- fA� wy/ ^T���. �:- fA2f �Ó ���Q�E ÂS- fA234 �y �@/ 012�D�.

on default = size

���Q�E Á �E� Y�- "default"�  ¡234 DEFG�DH§ sp_diskdefault- 01.��.

database_device���Q�E- H�� Á �E� /�± �[i��. ���Q�E� ù ���Q�E Á �E@� �� ÂS� C\/ �f.��. disk init- 012O ���Q�E Á �E- AdaptiveServer �v.��.

65

create database

size �y p� fA&� !D� w� ���Q�E |E}Ù(extention) ÂS �{� C\� #i��. 'k' ·� 'K'(�� �Ö), 'm' ·� 'M'(Îv �Ö), 'g' ·� 'G'(Sv �Ö). p� fA&- í�D ��=> .��. �+!� p� fA&- ��2f�� ¡å �, 0¢i��. K)^ p� fA&- ��234 �+!- 01=> .��.

log on���Q�E �K �� Á �E� /�± �[/ fA.��.log on u � �Y� Á �E- fA� wx��.

with overrided+� Á �E ���� Ö×ØÙ �Kv "O w �� ���Q�E� m� v��� ±foä¬ Adaptive Serverv Á �E 0#/ $ét�¬¹ .��. � u/ 012f �Ó d+�Á �E� �K R ���- %123� ¡å create database�@� �&v �Í.��. �K� ���- �Ú 0124�with override- 012� ¡å ¡Ó ÎDfv ̂ T^fÌ �@? Æ����.

for load���Q�E 'G- ��2� ¡åÌ 01� w� \¼¿� create database P�/ Æ�.��. &¯� �1? 69 h�f�"for load üÙ 01"/ ��2�D�.

with default_location� U�V� H� �:- fA.��. for proxy_update u/ �ÚfA24 fA� �:� ù �Ï U�V�^ �� G¹D U�V� &dZ� Í����.

for proxy_update�Ï �:� ÎT���- &dZ� v³� G¹D U�V/Í�.��. for proxy_update� with default_location/ fA2f �� � 01� ÷x��.

�� 1 pubsä� ���Q�E- Í�.��.

create database pubs

�� 2 pubsä� 4MB ���Q�E- Í�.��.

create database pubson default = 4

�� 3 datadev segment 3MB, moredatadev ̄ K(Ö 2MB� pubsä� ���Q�E- Í�.��.

66

3A 9B: create database – create schema

create database pubson datadev = 3, moredatadev = 2

�� 4 datadev ̄ K(Ö 3MB� ���� logdev ¯K(Ö 1MB�Kv w� pubsä� ���Q�E- Í�.��.

create database pubson datadev = 3log on logdev = 1

�� 5 proxydbä� G¹D ���Q�E- Í�2fÌ G¹D U�V? &dZ� Í�2f �x��.

create database proxydbwith default_location"UNITEST.pubs.dbo."

�� 6 proxydbä� G¹D ���Q�E- Í�2Ó G¹D U�V/ &dZ� Í�.��.

create database proxydbon default = 4with default_location"UNITEST.pubs2.dbo."for proxy_update

�� • master ���Q�E� create database- 01.��.

• size- float ��� ��Z� fA� wfÌ � ÂS� �{ p�� v� ve� 7 � �8���.

• Adaptive Serverv create database R alter database� ���Q�E �� C\/ 256 /�± h�f p�� �{2S �7 �)� �@? fA� ÂS- �{ p�� v� ve� 7 � �8.��.

• p� fA&- ��2f �Z4 Adaptive Server� ÁE C\/ Îv �Ö ÂS� =-2Ó � .&- �Pv 012� /�± h�f ÂS�  ³.��.

• ���Q�E� �:� ÂS- fA2f �/ ¡å Á�Ö �:�master..sysdevices� ̂ T�� Á�Ö ���Q�E Á �Ei��. Á�Ö ÂS� model ���Q�E� ÂS ·� sysconfigures� default database size �g  B� ´��.

DEF ��&� sp_configure- 012O default database size- ¡2Ó Adaptive Server- �D52O Á�Ö ÂS- KvD� wx��. default database size �g  � ±¬ model ���Q�E ÂS̵ z> .��. model ���Q�E ÂS- KvDì4 Á�Ö ÂS¬ KvD�> .��.

67

create database

Adaptive Server� 01&v �;� ̵� C\/ �C2f F2� ¡å Á �E �ä v�24 �; ve� C\/ �{2Ó �{� C\� ÂS� �{ �:- BO ½� ÎDf- ��.��. ���Q�E� �� ÂS� DEF �ä ����.

• �y �@/ 012O G¹D ���Q�E- Í�� ¡å

create database mydb on my_devicewith default_location = "pathname" for proxy_update

ÂS ¦Õ/ �D� ̵ Á �E �[� aÔ2Ó Á�Ö ���Q�E ÂS(model ���Q�E� ÂS)v MN G¹D U�V/ ��� ̵ aÔk Âf �? ¡å � �@ �&v �Í� wx��.

CISv ���Q�E ÂS- 'Y2¬¹ 234 � �@ Á �E �[�^ �� üÙ/ �C2f �é> .��.

create database mydbwith default_location = "pathname" for proxy_update

� �m

• Adaptive Server� �� 32,767g� ���Q�E- ��� wx��.

• Adaptive Server� � H 2^� ���Q�E- Í�� wx��. ���Q�E �;� ab� ¡å � 01&© �y ÎDfv ^T>��.

model database in use: cannot create new database

• create database ·� alter database- 012O ���Q�E Á �E C\/ �{� �@� � �{? 2^� Á �E GÒK(Ö- ^T�W sysusages �Z� i����.

• ���Q�E �= �[� fA� ̄ K(Ö� �� � 32i��. ¯K(Ö� jA Adaptive Server 01� w� ���Q�E Á �E� �[� fA� 2� s.i��. &¯��1? ��� �� ���- ��2�D�.

model�P vZ� n S�TU��

• Adaptive Server� model ���Q�E- m02O � ���Q�E- Í�.��.

• U�V, �� G�DH, 01& A� ��� �� R �� Å-�v2Ó ���Q�E üÙ �A/  ¡2O model/ 01&A�� wx��. � ���Q�E� � Å� �A/ model� Ye.��.

68

3A 9B: create database – create schema

• C¶� m�- B�234 create database �@? model ���Q�E- m0`/ � 6S¿zf �? MN h�f- R�=>.��. � 56? ���Q�E ÂS� DEF� e¬ �ä· Ô A¬ ¸� wx��.

���Q�E 'G- ��2S �= ���Q�E- Í�2�¡å for load üÙ/ 012O h�f R� p¦- ]s¹ wx��. �J© 24 ���Q�Ev Y{k º� Í����.

S�TU�� w� �`Z 'x

• � ���Q�E- Í�� �@� master ���Q�E- I6.��. �J© 24 masterv æYz¬ çÓ ²�2© m�� wx��.

�� ���Q�E- Í�2Ó master- I6� � �&v �Í24 disk refit- 012O  ¡ 0¢/ m�� wx��.

• with override u/ 0124 �K� ��� ¯K(Ö- � Á �E� �Ú 01� wx��. K)^ C¶� m�- �=�� log on fA� Á �E� ���- H�2� °�± Á �E� Pä> .��. 2� ÁEÂv ab2� ¡å� ���Q�E 'G� Ö×ØÙ �K� ���Q�E- m�� wx��.

Ö×ØÙ �K� ���- M H�2� � 012� � Á �E 5? ���Q�E- Í�� wfÌ I6� ;<�dump database �@/ 01=> .��.

• Ö×ØÙ �K ��� Á �E ÂS� 6��Ö 56� #$Ö×ØÙ �K 'G� Q¬ �ä ����. ¡» �ä ���Q�E &Å �{� C\� 10-25%- �K Á �E �{.��. Ö×ØÙ �K Á �E �{� C\? �01� ÷ZW ���- H�2� � 01� ÷S �7 5? ÂS� D52� � v� !x��.

for load yz ��

sp_addsegment- 012O ���Q�E- �v2f �? ¡å �Å �&- m�2<^ DEF \ ���Q�E- �d234 forload üÙ/ 01� wx��. alter database for load- 012O ÌtA ���Q�E 'G- ��� ���Q�E �9f � ���Q�E- Í�2�D�. 'G- � ���Q�E ��� �C\ �{/ m�2� ��? ��� �� ���- ��2�D�.

• for load üÙ/ 012O ���Q�E- Í�24 ���Q�E 'G- ��2S � � ���Q�E� �y �@Ì Æ�� wx��.

69

create database

• alter database for load

• drop database

• load database

���Q�E 'G- � ���Q�E ��� � ���Q�E� +, dbcc Ap �@/ 01� ¬ wx��. onlinedatabase �@/ ��� �� �@/ �� ÷� 01� wx��.

• for load üÙZ� Í�� ���Q�E� sp_helpdb� 8$"don't recover" Y�- ��.��.

S�TU��� #� D' {(

• ���Q�E �� BÓ�- áZ34 DEF G�DH sp_helpdb- Æ�.��.

• ���Q�E 01� C\ �� BÓ�� sp_spaceused-01.��.

with default_location ) for proxy_update ��

for proxy_update u� ÷Z4 with default_location u� d5? �� G�DH sp_defaultloc � �C2� $ lx��. � U�V$ S£ U�V Í�� Á�Ö H� �¼ �:v �AzfÌ G¹D U�VA�� &d v³�S� create database �@/ ¨�2� d² �zf �x��.

• for proxy_updatev default_location ÷� fA� ¡å )v BÓ���.

• G¹D ���Q�Ev Í�z4 (for proxy_update üÙ 01)CIS(Component Integration Services)v U����.

• Primary �P ���Q�E w� Æ� U�V$ �- ^T�� MN G¹D U�V/ ��Dì� � ��� ���Q�E� 'Y ÂS- �C.��. � 'Y 2? MN G¹D U�V$ §iE- ��Dì� � ��� ���Q�Eh�f i��. ÂS- fA2f �<^ ���Q�E Á �E- fA2f �? ¡å 'Y 2� 01���.

• ¼0 �P ���Q�E w� Æ� U�V�^ �- ^T�� MN G¹D U�V/ Í�.��.

• G¹D U�V� MN ��/ public ,O.��.

• guest 01&- G¹D ���Q�E �v.��.

70

3A 9B: create database – create schema

• ���Q�E Y�� � ���Q�Ev 'Is_A_Proxy'� ̂ T^¬¹ �A���. � Y�� master.dbo.sysdatabases.status4 t wx��.

56

7� create database ��? DEF ��&v Á�Ö� master ���Q�E� sysusers U�V ̂ _� 01&© #¬� wx��. K)^ create database ��? ���Q�E H� �¼ �{ �� �- �f2S �= �½� ��.��.

sybsecurity ���Q�E- Í�2� 01&� DEF B² �{&O> .��.

create database ��? grant all �@ ��zf �x��.

89 �� – alter database, disk init, drop database, dump database, loaddatabase, online database

��� ���� – sp_changedbowner, sp_diskdefault, sp_helpdb,sp_logdevice, sp_renamedb, sp_spaceused

create default�� ci� � 2/ �D±Z� �C2f �Z4 _(·� 01& A� �

�� ��� MN _) ci� 2/ fA.��.

�� create default [owner.]default_name as constant_expression

���� default_name Á�Ö �[i��. #%& õö/ X => 2W   v � ÷x��. "� ���Q�E� �� 01&v ¼�� l? �[§�� Á�Ö- Í�234 ¼�& �[/ fA.��. owner�Á�Ö2? "� 01&i��.

constant_expression _ ·� �� ���Q�E Å� �[/ ��2f �� !"#i��. ���Q�E Å- ��2f �� �� � - ��� wx��. 7&� ¾¿ Y - �+!� �Ó �A Y � ¡å"0x" c- 01.��.

�# $% "#SQL92 Transact-SQL ÎÍ

71

create default

�� 1 Á�Ö2/ A�.��. �� sp_bindefault- 012O ±u� _�^ 01& A� ��� �� §�=> .��.

create default phonedflt as "UNKNOWN"

sp_bindefault phonedflt, "authors.phone"

authors U�V� phone _ ¢¸� ÷/ ¡åÌ Á�Öv ±1���. ÀÖ�v ÷�� ? NULL 2 ÀÖ��� ����. Á�Ö- áZ34 Á�Öv w� _/ ��2f �� _ ¸¹ insert �@/ Æ�.��.

�� 2 "� ¾¿- §�z� ={ _ ci2� Á�Ö2todays_date- Í�.��.

create default todays_date as getdate()

�� • sp_bindefault- 012O _ ·� Adaptive Server� �C2���� ��� é: 01& A� ��� �� Á�Ö- §�.��.

• S£ 2/ §� =�2f �Ó � Á�Ö- ��� �� §�� wx��. � Á�Ö� S£ 2/ �D2Ó §� =�.��.

• Á�Ö� ¼E UEÖ- ÁS34 sp_hidetext- 01.��.

� �m

• "� ���Q�E�Ì Á�Ö- Í�� wx��.

• create default 7? p+ 7:� �� 7$ �Ú 01� ÷x��.

• l? �[� � 2/ Í�234 drop default- 012O Á�Ö- R�=> 2W R�2S � sp_unbindefault DEF G�DH- 012O Á�Ö- §� =�=> .��.

S�T |} ;[Z

• _� ��� ��$ U³zf �� Á�Ö2/ ci23Ó D¬24 Adaptive Serverv ) ÎDf- Í�.��. '- t "N/A"� l? 7& !"#/ integer _ §�� ¡å _ 2/ fA2f �? insert� �&v �Í.��.

• Á�Ö2� 7& _ �= s� 0 ¡å string_rtruncation üÙ�A �ä Adaptive Server� 7&_/ truncation2<^ 'Ð- Í�.��. &¯� �1? set �@/ ��2�D�.

�V,� #� D' {(

• Á�Ö A�� syscomments H����.

72

3A 9B: create database – create schema

• Á�Ö- _ ±124 ={ Å IDv syscolumns H����. Á�Ö- 01& A� ��� �� ±124 ={ Å IDv systypes H����.

• Á�Ö �[/  ¡234 sp_rename/ 01.��.

• Á�Ö àEÖ �� BÓ�� ¡å sp_helptext- 01.��.

�V, ) ~�

• _ Á�Ö� õö� M ��z w� ¡å Á�Öv õö/ �í=�� ² ���. õö$ ab2� Á�Ö� ci� ÷x��. Adaptive Server� � Á�Ö- ci23Ó 24 ) ÎDf- Í�.��.

�V, ) NULL

• _� NULL/ 312f �Ó _ �� Á�Ö- Í�2f �?¡å 01&v �/ ci2fÌ ={ _ �� 2/ ��Dìf �Z4 ci� �&v �Í2Ó Adaptive Serverv ) ÎDf- Í�.��.

! 3-1? Á�Ö� £�� _� A� 0�� �¦- NULL ·�NOT NULL� ^T���.

� 3-1: NULL4 � 012 E�� "G

create table� �V,g QD

• create table 7� default u/ 012� _ Á�Ö- create default- 012� �Å 2Z� A�� wx��. K)^ � _ Á�Ö� ={ U�VÌ �AzW �� U�V� §�� ÷x��. integrity constraint �� �1? create table R altertable/ ��2�D�.

56

7� create default ��? ���Q�E ¼�&v Á�Ö�W �� 01&© #¬� wx��.

89 �� – alter table, create rule, create table, drop default, drop rule

( NullCD

N:O PQ,89: PQ

N:O PQ, 89: RQ

N:O� NULL,89: PQ

N:O� NULL,89: RQ

NULL NULL Æ. ³÷£ Æ. NULL Æ. NULL Æ.

NOT NULL Qï, �� oò ³÷£ Æ. Qï, �� oò Qï, �� oò

�# $% "# ��

SQL92 Transact-SQL ÎÍ SQL92� >*I� ³÷£R t�2�É create table F9 default �4 *+?��.

73

create existing table

��� ���� – sp_bindefault, sp_help, sp_helptext, sp_rename, sp_unbindefault

create existing table�� CIS(Component Integration Services) �1. G¹D U�V/ Í��

�y �Ï U�V� ÎT���- ÝÞ2Ó H�2W ���-G¹D U�V H�.��. G¹D U�V/ �Ï �:� U�V,�, G�DH * �N� wx��.

�� create existing table table_name (column_list)[on segment_name][ [ external {table | procedure} ] at pathname ]

���� table_nameG¹D U�V/ Í�� U�V �[/ fA.��.

column_list�Ï U�V �� AB- H�2� _ ¸¹ �[/ fA.��.

on segment_name�Ï U�V/ ��2� ¯K(Ö- fA.��.

external Åv �Ï Å=/ fA.��.

table �Ï Åv U�V ·� �=/ fA.��. Á�Ö� externaltablei��.

procedure �Ï Åv �� G�DH=/ fA.��.

74

3A 9B: create database – create schema

at pathname�Ï Å� �:- fA.��. pathname? server_name.dbname.owner.object �#/ vs��. OS�

• server_name(� )? �Ï Å- ��2� �P� �[i��.

• dbname(�,)? � Å- vfÓ w� �Ï �Pv ��2� ���Q�E �[i��.

• owner(�,)� �Ï Å- ¼�2� �Ï �P 01&� �[i��.

• object(� )� �Ï U�V�^ � ·� G�DH� �[i��.

�� 1 G¹D U�V authors- Í�.��.

create existing table authors(au_id id,au_lname varchar(40) NOT NULL,au_fname varchar(20) NOT NULL,phone char(12),address varchar(40) NULL,city varchar(20) NULL,state char(2) NULL,zip char(5) NULL,contract bit)

�� 2 G¹D U�V syb_columns- Í�.��.

create existing table syb_columns(id int,number smallint,colid tinyint,status tinyint,type tinyint,length tinyint,offset smallint,usertype smallint,cdefault int,domain int,name varchar(30),printfmt varchar(255) NULL,prec tinyint NULL,scale tinyint NULL)

75

create existing table

�� 3 �Ï �P SERVER_A� blurbs U�V �= �[� blurbs§ G¹D U�V/ Í�.��.

create existing table blurbs(author_id id not null,copy text not null)at "SERVER_A.db1.joe.blurbs"

�� 4 �[� p1§ �Ï G�DH �= �[� rpc1§ G¹D U�V/ Í�.��.

create existing table rpc1(column_1 int,column_2 int)external procedureat "SERVER_A.db1.joe.p1"

�� • create existing table �@? � U�V/ Í�2f �x��. ��CIS(Component Integration Services)v column_list� ABv�Ï U�V$ +:2�f L§2S �= U�V �N/ Ý02Ó Sñ Åv w�f L§2Ó �Ï U�V �� ÎT���- H�.��.

• UEÖ ��� �+�^ �Ï �P Åv £�2f �/ ¡å) ÎDfv !DzÓ �@? <,���.

• Åv £�� ¡å DEF U�V sysobjects, syscolumns Rsysindexesv 6��Ö���. L§? 3p¦ ̧ à A����.

• S£ Å� j�� 8A���. UEÖ ��� �+� ¡å�+ �b$ �Ä� �#/ 8A2� � ��.��. �Ï�P Å� ¡å Åv U�V, � ·� RPC§f O,-8A2� � ��.��.

• �Ï �P Å(RPC �Ð)� ¡å U�V�^ � �= á? _ e�? column_list A�� $ kª���.

• UEÖ ��� �+�^ �Ï �P U�V� §iE ABv��zÓ DEF U�V sysindexes �� _/ Í�2� �01���. �- �= §iE� ìv Adaptive Server 1� A�zW U�V w� MN §iE- ¾� üÈ@�H� Ó3.��.

• on segment_name u? �Å� ̈ �zW �Ï �P �Pzf �x��.

76

3A 9B: create database – create schema

• S£ U�V/ �C±Z� A�� � U�V �= updatestatistics �@/ ��.��. �J© 24 ¾� üÈ@�Hv �§ ¶�� ��2O .�±§ �,/ � wx��.

• CIS(Component Integration Services)- 0124 �Ï _� NULL� A�z woä¬ NOT NULL� A�� _� w� G¹DU�V/ Í�� wx��. K)4 Æ+:- M3 ½� ¡Óv !D���.

• at ìý�� �C� �: AB� sp_addobjectdef DEF G�DH� �C2� AB� lx��. ABv sysattributes U�VH����.

• CIS(Component Integration Services)� �Ï U�V� ù §iE �� systabstats IJ�K �Ä�- ci2<^ 6��Ö.��. ¯,±§ �� �¦� �Ï §iE� �¦v ÷S �7 �¼ _ g Ì systabstats record(id, indid R rowcnt)� �A���.

S�T |} �[

• create existing table �@/ 01� ¡å §#� Adaptive Server��� ��/ 012O MN ��� ��/ fA=> .��.�Ï �P U�V? m. �P ̀ ÒE ³¡ wS �7 �Ï U�V� ��� ��? ���- ÝÞ� � fA� Adaptive Server��Z� &d  ³���.  ³/ � ÷� ¡å CIS(ComponentIntegration Services)� U�V/ A�� ÷x��.

• Component Integration Services User’s Guide� f�2��P `ÒE �� ÇÙ� ��z wZW CIS(ComponentIntegration Services)� ^D±Z� �2� v�� MN ��� ��  ³/ ��.��.

P� ���� ?� �A

• MN �P `ÒE- 012O �Ï �P� U�V w� _B� ±? _/ fA� w© zÈx��.

• �� +, �P `ÒE�� _ ID� _/ �¼`fÌ ��MN �P `ÒE� �[Z� _/ �¼.��.

• �P `ÒE� M _ �#� �Ï U�V w� _� ����#Z�  ³z<^ K í��  ³� w� ��� �#�z¬¹ 31.��.

77

create existing table

�� /���

• G¹D U�V� G�DH ��� U�V�4 �Ï G�DH�8$ set ��$ +:2� _ ¸¹/ �C=> .��. createexisting table �@? � _ ¸¹� AL�f O,- L§2f .34!.

• G�DH �= §iE� Í�zf �x��.

• CIS(Component Intergration Services)�� �Ï G�DH�8$ set/ Aµ, �� U�V$ 8., insert ·� select- 012O �� U�V ci� w� vY U�V� _É.��. K)^ G�DH �#� U�V? øS �1Z� \½zS �7�y �@? U�V 01� ÷x��.

• delete

• update

• insert

• create index

• truncate table

• alter table

• _ �[� Êò(_)� D5z4 K _? �Ï G�DH 8$ sete2f �ZW �)� _? �g  _�� �����. '-t4 �y$ lx��.

create existing table rpc1( a int, b int, c int, _p1 int null, _p2 int null)external procedureat "SYBASE.sybsystemprocs.dbo.myproc"

� '�� _p1 R _p2 �g  _? i� �g  i��. 8$ set� ^T^f �fÌ ¾�� ��� wx��.

select a, b, c from t1where _p1 = 10 and _p2 = 20

CIS(Component Integration Services)� ÝÞ §&- @p1$ @p2�[/ 012O �Ï G�DH �g  � �P.��.

78

3A 9B: create database – create schema

• create existing table 7� �g  _/ A�� �� �y õö/ �ä> .��.

• �g  _ A�� NULL 2/ 31=> .��.

• �g  _? +í 8$ _B� (H ? ÷ZW í�D_ ¸¹� ô ,Ô ^T^> .��.

• �g  _� select ¸¹ ��z wÓ #�= �Ï G�DH �g  � �Pz� ¡å� return 2� where u� fA���.

• �g  _� select ¸¹ ��z wfÌ where u ^T^f �<^ �Ï G�DH �g  � �Pzf �� ¡å return2? NULLi��.

• Adaptive Server ¾� G�¯�v �g  _/ ÝÞ v�� §&� \½24 K �g  _? �Ï G�DH �g  ��P� wx��. �g  _� or e� ��z wf �Z4 K �g  _? ÝÞ v�� §&� \½���. '- t, �y ¾�� �� � w� or e�? �g  _� �g  � 01zf �¬¹ .��.

select a, b, c from t1where _p1 = 10 or _p2 = 20

56

7� create existing table ��? Á�Ö� U�V ¼�&© wZW ��01&© #¬� ÷x��.

89 �� – alter table, create table, create proxy_table, drop index, insert,order by �, set, update

create function(SQLJ)�� Java A± μ� SQL !D- �v2O 01& A� � - Í�

.��. � μ�- 012O A�� 2/ return.��.

�� create function [owner.]sql_function_name( [ sql_parameter_name sql_datatype

[( length)| (precision[, scale ]) ][ [, sql_parameter_name sql_datatype

�# $% "#SQL92 Transact-SQL ÎÍ

79

create function(SQLJ)

[( length )| ( precision[, scale ]) ]]... ] ] )

returns sql_datatype [ ( length)| (precision[, scale ]) ]

[modifies sql data] [returns null on null input |

called on null input][deterministic | not deterministic][exportable]language java parameter style javaexternal name 'java_method_name

[ ( [java_datatype[, java_datatype ...] ] ) ] '

���� sql_function_name={ � � Transact-SQL �[i��. #%& õö/ X =>2W   v � ÷x��.

sql_parameter_name� �� §&� �[i��. ù i� �g  2? � v Æ�� � �C���. �g  � �, 0¢i��. SQLJ � �§&- 012f �x��.

�g  �[? #%&� õö/ �ä> .��. �g  2;.&v é: 7&v ��z w/ ¡å �+!� � ½>.��. ���Q�E �[�^ ¼�& �[� @�!v twZm� � �[Z� �A� Å �[/ ��.��. �g  2� .&� D52� ¡å �+!� �> .��.

sql_datatype [(length) | ( precision [, scale])]�g  � Transact-SQL ��� ��i��. � �g  �� &¯� �1? 98 h�f� create procedure- ��2�D�.

sql_datatype? SQL G�DH ��i��.

returns sql_datatype� � 8$ ��� ��/ fA.��.

modifies sql dataJava μ�v SQL ���- ÑÕ2Ó øÓ A2� SQL/ U��/ fA.��. � � Á�Ö�W �+� �"i��. ANSI!X$� �7 U³�/ �= ��zÈx��.

deterministic | not deterministicANSI !X$� �7 U³�/ f�.��. Æ�zf �x��.

80

3A 9B: create database – create schema

exportableG�DHv Adaptive Server OmniConnect™ S�/ 012� �Ï �P� Æ�z¬¹ fA.��. G�DH� μ�� �Ï�P Y½=> .��.

language javaÐ, �Ë� Java� 5�z¬¹ fA.��. SQLJ � - �� � ui��.

parameter style javaÂT= D Ð, �ËZ� �P� �g  v Java �g  =/fA.��. SQLJ � - �� � ui��.

externalcreate function� SQL Ð� G�KÒÌ �� 5�� Ð, �Ë�� SQL �[/ A��/ ^T���.

nameÐ, �Ë(Java μ�)� �[/ fA.��. ‘java_method_name[ java_datatype[{, java_datatype} ...]]’ *� fA� �[? 7&_ ����W 5? �+!� �> .��.

java_method_nameÐ, Java μ�� �[/ fA.��.

java_datatype�N� w� Java ��� �� ·� 8$ set/ fA.��. � ? Java μ� ��i��.

� '�� java.lang.Math.sqrt() μ�- U�2� square_root � -�.��.

create function square_root(input_number double precision) returns

double precisionlanguage java parameter style javaexternal name 'java.lang.Math.sqrt'

�� • l? �[� w� SQLJ � - Adaptive Server �� � � Í�� ÷x��.

81

create index

• d+� `ÒE R μ� �[/ 012O Java A± μ�-SXZ� � 01& A� � R SQLJ � - Í�� wx��.

�� Adaptive Server� ÝÞ ¶��� SQLJ � v ¢Y {H�� !D���.

• create function 7 �� 31g� �g  - ��� wx��.

• create function �� &¯� �1? Java in Adaptive Server Enterprise- ��2�D�.

7� sa T(role)� w� ���Q�E ¼�& ·� 01&Ì create function/ Æ�� wx��. ���Q�E ¼�& ·� sa� create function �� ��/ #¬� ÷x��.

89 �� – create function(SQLJ), drop function(SQLJ)

��� ���� – sp_depends, sp_help, sp_helpjava, sp_helprotect

create index�� U�V� 2^ �Y� _ §iE- Í�.��.

�� create [unique] [clustered | nonclustered]index index_name

on [[database.]owner.]table_name (column_name [asc | desc]

[, column_name [asc | desc]]...) [with { fillfactor = pct,

max_rows_per_page = num_rows,reservepagegap = num_pages, consumers = x, ignore_dup_key, sorted_data,[ignore_dup_row | allow_dup_row],

statistics using num_steps values } ][on segment_name]

82

3A 9B: create database – create schema

���� unique"ì 2"�äÓ¬ 2� �m §iE 2/ �f.��. DEF? §iE- Í�� � ���v �9 w� ¡å �m ì 2� w�fÝ02Ó �H insert ·� update- 012O ���- �v.��.�m ì 2� w<^ � �Y� � NULL 2� w/ ¡å �@ �&v �Í2Ó Adaptive Server� �m ¢¸� w�� )ÎDf- !D.��.

��! Adaptive Server� U�V NULL� é: text ·� image _� ��� ¡å �m �/ Íf2f F.��.

ignore_dup_row ·� ignore_dup_key- 012O §iE- Í�2S �� �m ì 2/ Í�2� update R insert �@ �&v �Í.��.

m. §iE(ì 2� � �Y� _� ��� §iE)¬ Ó�� wx��.

Á�Ö� nonuniquei��. �m �� ��� U�V nonunique,clustered §iE- Í�234 allow_dup_row ·� ignore_dup_row-fA=> .��. éÒ� �m �/ ��2�D�.

clustered"� ���Q�E Á �E� Æ� � ¶�� �� §iE� ¶�� ly/ Î.��. clustered §iE� Ï�^ �� ��Æ� ��� h�fv t wx��. clustered §iE� <� �,Ô nonclustered §iEB� Ð[© ���- ÝÞ.��. U�V{ clustered §iE� 2^Ì 31���. 90 h�f� "clustered§iE Í�"/ ��2�D�.

clusteredv fAzf �? ¡å nonclustered� vA.��.

nonclustered�� Æ� ¶�v �� §iE� ¶�� lf �y/ Î.��.nonclustered §iE� �G �r? ��� h�f w� � �� �§�- ��2Ó wx��. U�V{ �� 249g�nonclustered §iE- vh wx��.

index_name§iE� �[i��. §iE �[? U�V� Ó�=> 2fÌ ���Q�E ��� Ó�� ��� ÷x��.

83

create index

table_name §iE� _� �:� U�V� �[i��. U�V� �� ���Q�E wZ4 ���Q�E �[/ fA2W ���Q�E l? �[� U�V� � �Y wZ4 ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&�W database� Á�Ö2?"� ���Q�Ei��.

column_name §iEv ±1z� _i��. m. §iE� �� 16g _� m.� 2 S6.��. m. §iE 01� MN _� �� 0��.? 600 �Ö- 6$� ÷x��. table_name �y� �U² w� m. §iE(Aµ� ¶��) ��� _/ ^_.��.

asc | descfA� _ �= §iEv �[�¶Z� Í�z�f, �8�¶Z� Í�z�f fA.��. Á�Ö� �[�¶i��.

84

3A 9B: create database – create schema

fillfactorS£ ��� � §iE- Í�� � Adaptive Serverv ù h�f- Ñ@^ j¦ §f fA.��. fillfactor kl? §iE- Í�� �Ì 01���. ���v  ¡zm� h�f� j� A¬� jA XZ� �fzf �x��.

01&v fA� 2? sp_helpindex� !D2<^ reorg �@Z�^� 01� w¬¹ sysindexes H�zf �x��. H��fillfactor 2/ Í�234 sp_chgattribute- 01.��.

fillfactor� Á�Ö� 0�W create index 7 with fillfactor- ��2f�? ¡å sp_configure- 012O 2�  ¡zf �? � � 2�01���. fillfactor- fA� � 1$ 100 0�� 2/ 012�D�.

fillfactor 0? C�k jýA h�fv w� clustered §iE� C�k jýA �G h�fv w� nonclustered §iE- Í�.��.clustered §iE� nonclustered §iE� §iE B-Ö� � aÔ� #� C\/ no p��. fillfactor-  ¡� ��� <� ÷x��.

fillfactor- 100Z� �A24 Adaptive Server� ù h�fv 100%jýA clustered §iE� nonclustered §iE- M Í�.��. fillfactor 100? �v� ���v ÷� øS �1 U�VÌ ±1���.

100B� 5? fillfactor 2(j%� ¡å§ 0? �Ð)? AdaptiveServerv C�k jýff �? h�f � §iE- Ìt¬¹.��. fillfactor 10? 8´ �? ���- H�2� U�V §iE- Í�2� ¡å .�±+ wfÌ, 5? fillfactor 2? ù §iE(·� §iE� ���)v o �? H� C\/ �f2¬¹.��.

��! fillfactorv w� clustered §iE- Í�24 Adaptive Serverv clustered §iE- Í�� � ���- �D 7�2S �7 ���v ��2� H� C\� # ;</ 9q��.

85

create index

max_rows_per_page§iE� ��� h�f R �G �r h�f w� � - ��.��. max_rows_per_page� fillfactor� YU 7T±i��. fillfactor� P� max_rows_per_page 2? sp_chgattribute- 012O  ¡��ef �f���.

max_rows_per_page� 2/ fA2f �/ ¡å Adaptive Server�U�V/ Í�� � 0� 2/ 01.��. U�V$ clustered §iE� 2? 0$ 256 0�i��. nonclustered §iE �� h�f{ �� � � §iE ì� ÂS �ä ����. AdaptiveServer� fA� 2� s� t/ ¡å ) ÎDf- return.��.

max_rows_per_page 2 0? jýA h�fv w� clustered §iE- Í�2Ó jýA �G h�fv w� nonclustered §iE- Í�.��. clustered §iE� nonclustered §iE� §iE B-Ö� � aÔ� #� C\/ no p��.

max_rows_per_page- 1� �A24 Adaptive Server� �G �r� h�f{ � �� w� clustered §iE� nonclustered §iE- M Í�.��. &½ ܯE2� ��� �� lock ab/ò�34 x? 2/ 012�D�. K) ̂x? max_rows_per_page2/ 0124 Adaptive Server� C�k jýff �? h�fvw� � §iE- Í�2Ó o �? H� C\/ 012¬¹ 2Wh�fv oÒ Ô�� wx��.

CIS(Component Integration Services)- Z�¿24 �Ï �P�= max_rows_per_page- 01� ÷x��.

��! max_rows_per_page- 012O clustered §iE- Í�24Adaptive Serverv clustered §iE- Í�� � ���- �D 7�2S �7 ���v ��2� H� C\� # ;</ 9q��.

with reservepagegap = num_pagesjýh h�f� Q h�f� kl/ fA2O |E}Ö(extent )i/�� �{ 56 d² Q h�fv nof¬¹ .��. fA�ù num_pages �= ^� §iE- L�� w¬¹ Q h�f- no p��. �� 2? 0-255i��. Á�Ö� 0i��.

86

3A 9B: create database – create schema

ignore_dup_key�m ì ÀÖ�- clustered ·� nonclustered unique §iEv w� U�V ÓZ3� D¬- _¼.��. Adaptive Server� AB ÎDf- 012O �m ì D¬� insert ·� update- _¼.��. _¼� �� �m ìv w� Ö×ØÙ� A����.

ignore_dup_key �A O, �¦÷� �m 2 ·� � �Y�NULL 2/ ��� unique §iE^ _/ Í�� ÷x��. Í�/ D¬24 Adaptive Server� { H� �m 2/ �C2� ) ÎDf- !D.��. Adaptive Serverv _ unique §iE- Í�2S � �m 2/ �<=> .��.

ignore_dup_rowU�V� �m �/ R�2O �m �/ ��2� U�V ��� nonunique, clustered §iE- Í�2Ó �m �/ Í�2fÌ TI(roll back)2f �� insert ·� update- _¼� wx��. &¯� �1? 92 h�f� "�m �"/ ��2�D�.

allow_dup_row�m �/ ��2� U�V nonunique, clustered §iE- Í�� wZW update R insert 7/ 012O �/ �mD� wx��. � üÙ/ 012� ­® �� ��? éÒ� 92 h�f�"�m �"/ ��2�D�.

sorted_dataU�V w� ���v �9 Aµz wZ4 clustered §iE^unique nonclustered §iE Í� e¬v ºäs��('- t,bcp- 012O �9 Aµ� ���- Q U�V m02� ¡å).&¯� �1? 93 h�f� "Ð� Aµ/ �� sorted_data üÙ01"/ ��2�D�.

with statistics using num_steps values ¾�- �±¿2� � 012� kEÔK¥/ Í�2� p¦ - fA.��. � u� Í]z4 �y$ l� ±1���.

• §iE� �� _ �= "� H�� kEÔK¥� ÷Z4Á�Ö2? 20i��.

• §iE _� �� _ �� kEÔK¥� �9 wZ4 "�p¦ v 01���.

num_steps 0/ fA24 §iE� �Í�zfÌ §iE ���¦� DEF U�V ÕÃ�ff �x��.

87

create index

on segment_name�[� fA� ¯K(Ö §iE- Í�.��. on segment_nameüÙ/ 012S � disk init- 012O Á �E- 6S¿2Ósp_addsegment DEF G�DH- 012O ���Q�E ̄ K(Ö- �v.��. ���Q�E 01� w� ¯K(Ö �[ ¸¹? DEF ��&© 7�2<^ sp_helpsegment- 012�D�.

with consumers§iE- Í�2S �� Aµ 56/ �=> 2� ¼k& G�¯E - fA.��. §iE- Aµ2� � 012� Æ� ¼k& G�¯E � Adaptive Serverv Aµ/ Æ�� � 01� w� 56& G�¯Ev o ±? ¡å fA� B� o ±/ wx��.

�� 1 authors U�V� au_id _ au_id_indä� §iE- Í�.��.

create index au_id_indon authors (au_id)

�� 2 authors U�V� au_id _ au_id_indä� unique clustered §iE- Í�.��.

create unique clustered index au_id_indon authors(au_id)

�� 3 titleauthor U�V� au_id R title_id _ ind1�ä� §iE-Í�.��.

create index ind1on titleauthor (au_id, title_id)

�� 4 authors U�V� zip _ zip_indä� nonclustered §iE-Í�2W ù §iE h�f- 1/4 jåÓ Aµ/ 4 ¼k& G�¯E� ��.��.

create nonclustered index zip_indon authors(postalcode)with fillfactor = 25, consumers = 4

�� 5 pub_id�� �[�¶Z�, pubdate�� �8�¶Z� §iE- Í�.��.

create index pub_dates_ixon titles (pub_id asc, pubdate desc)

�� 6 title_id �= §iE- Í�2W � � üÈ@�H �¦ 50g� kEÔK¥ p¦- 012Ó, §iE� 40h�f@� Q h�f- 2^g nw��.

88

3A 9B: create database – create schema

create index title_id_ix on titles (title_id) with reservepagegap = 40, statistics using 50 values

�� • §iE w� ì 7�-  ¡2� U�V ���- �v2�¡å ½S±Z� update statistics- Æ�2�D�. ¾� üÈ@�H� update statistics- 012O Í�� AB- 012O U�V� ¾�- Æ�� �Y� ¦�/ �,.��.

• nonclustered §iE- Í�� � U�V ���v t wZ4 Adaptive Server� � §iE� update statistics- Æ�.��. clustered §iE- Í�� � U�V ���v t wZ4 Adaptive Server� MN U�V� §iE� update statistics- Æ�.��.

• �§ AS±Z� 01z� MN _/ §iE¿.��.

• CIS(Component Integration Services)v 01z4 create index �@� �D ��zÓ U�V$ ��� Adaptive Server bc �P���.

� �m

• ��� ��� bit, text ·� image§ _ §iE- Í�� �÷x��.

• §iE � ÂS ��B� 4 _/ Í�2O U�V §iE¿� ÷� _/ Í�� wx��. &¯� �1? �y AB-��2�D�.

• U�V? �� 249g� nonclustered §iE- vh wx��.

• U�V? �� 2^� clustered §iE- vh wx��.

• §iE ì� �� 31_(�� 16)/ fA� wx��. �� �Ö � 600i��.

• =D U�V §iE- Í�� wx��. U�V� 0äf4 §iE¬ 0äs��.

• ={ U�V� ¼�&§ ¡å �� U�V §iE- Í�� wx��.

SOT �� �� @AB ! �� �<2K 650

4K 1310

8K 2670

16K 5390

89

create index

• �� §iE- Í�� ÷x��.

• create index� dump databasev ��f� d²� o ©�© Æ����.

• �y �]� Ìzz� ¡å partitioned U�V clustered §iE-Í�2< ̂clustered §iEv w� U�V/ partition� wx��.

• select into/bulkcopy/pllsort ���Q�E üÙ� �A� ¡å

• Adaptive Serverv �µ ¨�� ��� ¡å

• partition B� 2^ o �? 56& G�¯Ev w� ¡å

partitioned U�V� clustered §iE �� &¯� �1?Performance and Tuning Guide� 24� "Parallel Sorting"/ ��2�D�.

• clustered §iEv w� data-only locked U�V� 31z��� §iE � 249gi��. U�V? clustered §iE � g� nonclustered §iE 248g- vh wx��.

�s=. .N� vZ

• §iE� ��� ÝÞ/ Ð[© 2fÌ ��� 6��Ö� ©�© � wx��. o ^? ��/ �= ¯K(Öv %¬� °�± Á �E w/ � � ¯K(Ö U�V/ Í�2Ó ��¯K(Ö� nonclustered §iE- Í�.��.

• Adaptive Server� U�V� partitionz wÓ �Pv �µ ¨�� ��� ¡å §iE- �µ� Í�� wx��. ·� Aµ2� d² ��� i/��� #/ ò�S �= Aµ P¤- 01� ¬ wx��. &¯� �1? Performance and TuningGuide� 24� "Parallel Sorting"/ ��2�D�.

• nonclustered §iE� clustered §iE- Í�� � &dZ� ���zS �7 nonclustered §iE- Í�2S � clustered§iE- Í�.��.

• data-only locked U�V �= �µ Aµ/ 01� �� QU�V� ¡åä¬ 56& G�¯E� v partition B� �<^ l© ��z> .��. select into/bulkcopy/pllsort ���Q�E üÙ� �Az w> .��.

clustered .N� vZ

• U�V? U�V� clustered §iE- "����". U�V/ Í�� �y, create clustered index �= on segment_name L�/0124 U�V? §iE- Í�� ¯K(Ö� ��.��.

90

3A 9B: create database – create schema

jA ¯K(Ö U�V/ Í�� �y, ¯K(Ö- fA2f�Ó clustered §iE- Í�24 Adaptive Server� clustered§iE- Í�� Á�Ö ¯K(Ö� U�V/ �d.��.

àEÖ� �9f ���� %¬� page chain H�z wS�7 on segment_name/ 012O clustered §iE- Í�=¬ àEÖ� �9f _? �d2f �x��.

• clustered §iE- Í�2S �= Adaptive Server� S£ ���- m�2Ó �P� §iEv C�� � �Ò ���- R�.��. clustered §iE- Í�2S � 01� w� U�V ÂS� �¼ 120%� Q C\� ���Q�E w�fsp_spaceused- 012O L§.��.

• clustered §iE� �g U�V� Primary ì Í����(Ó�2© �/ #%2� _). Primary ì� DEF G�DHsp_primarykey- 012O ���Q�E(GÖÖÀ� G�K¥$ DEF G�DH sp_depends 01) S¹� wx��.

• clustered §iE �/ �m� w¬¹ 234 allow_dup_row-fA.��.

FGHI�J KLHIM� .N� DO IP QD

• §iE _ �[ �y asc R desc ìý�- 012O §iE ì� Aµ ¶�- fA.��. ¾�� order by u fA� ¶��� Aµz¬¹ §iE- Í�24 ¾� ¨� � Aµ p¦v Í]���. &¯� �1? Performance and Tuning Guide� 8�"Indexing for Performance"- ��2�D�.

.N�0 4� �� �� �m

• � H � |E}Ö(extent)^ 8 h�fg U�V$ §iE C\� �{���. |E}Ö(extent)v jýh �@� �� |E}Ö(extent)v �{���. §iEv �{2Ó 012� C\�#/ !D234 DEF G�DH sp_spaceused- 01.��.

• +, ¡å sorted_data üÙ/ 0124 ! 3-4 ��� ��Adaptive Serverv ��� � m0- ]s¹ wx��. �Â¡å §iE �� &Å- �� aÔ� �v C\Ì wZ4 ���. ì ÂS �ä � C\? �g U�V ÂS� ( 20% A¬i��.

91

create index

-w 2

• ignore_dup_row R allow_dup_row üÙ? nonunique, nonclustered§iE- Í�� �� ��� ÷x��. Adaptive Server� ùnonclustered §iE �,±Z� Ó�� � #% HU- �v2S �7 d+� ��� 2S é�ä �m � �=�¬ ×3� ��v ÷x��.

• ignore_dup_row R allow_dup_row� YU 7T±i��.

• nonunique, clustered §iE- 0124 ì- �m� wfÌallow_dup_row- fA2f �� � �/ �m� � ÷x��.

• allow_dup_row- 0124 nonunique, clustered §iE- �m�/ ��2� U�V Í�� wx��. U�V allow_dup_row üÙ ÷� Í�� nonunique, clustered §iEvw/ ¡å insert ·� update �@/ 012O � �m �/ Í�� ÷x��.

U�V� §iEv Ó�2f �/ ¡å Ó�� �� �� 0¢� allow_dup_row üÙB� å�.��. U�V� _ unique§iEv £�� ¡å allow_dup_row- 012O §iE- Í�� ÷x��.

• ignore_dup_row üÙ? nonunique, clustered §iE¬ 01���. ignore_dup_row üÙ? ��� 7:� �m/ �<.��. ignore_dup_row� �m �/ Í�2� insert ·� update-_¼2fÌ �Å Ö×ØÙ/ TI(rollback)2f� F.��.

• ! 3-2� allow_dup_row R ignore_dup_rowv �m �/ ��2�U�V nonunique, clustered §iE- Í�23� D¬� U�V �m �/ i�23� D¬ Ø ;</ 9:�f BO ���.

� 3-2: nonunique, clustered HIJ� �� KL � MN

! 3-3? O) ��� §iE 01� w� §iE üÙ/ BO ���.

UV ��WX ! R0 12) @AB YZ

@AB� R0 12) WX ! [\

�� úX [ ] create index oò insert oò allow_dup_row úX create index $ª insert $ª

ignore_dup_row úX �Ò�- t�ISi Zñ À# �N���. Qï Õ�S.

Zñ4 N0: ·Ê À� Æ.���. Qï Õ�S.

92

3A 9B: create database – create schema

� 3-3: HIJ MN

.N� #� unique � 9� ��

• create index� �Å ­®Z� create table ·� alter table 7unique �( �]/ fA2O unique §iE- ^D±Z� Í�� wx��. unique �( �]? U�V _ clustered ·�nonclustered unique §iE- Í�.��. � >�? §iE� �( �] �ä �[/ fA2W create index� Í�� §iE� d+� õö/ ����.

• drop index 7/ 012O unique �( �]/ f�2� §iE- R�� ÷x��. alter table 7/ �= �( �]/ R�2<^ U�V/ R�24 §iEv R����. unique �(�] �� &¯� �1? create table/ ��2�D�.

�� DOa 4� sorted_data yz ��

• jA ¡å� sorted_data üÙ? Aµ p¦- ]s²Ó ����/ � h�f� m0� ��v ÷¬¹ 2O §iE- Í�2� � ��� D\/ ò+ wx��. U�V� ` �� e¬Kvv ��=fW ÂSv 1GB �Y§ U�V�� · D\ºäs��.

sorted_data- fA`fÌ ¶�v Aµz wf �Z4 AdaptiveServer� ) ÎDf- !D2Ó �@ �&v �Í.��.

nonunique, nonclustered §iE� �m ìv w� �� ÷/ ¡å�C±Z� Í����. �m ìv w� �� wZ4 AdaptiveServer� ) ÎDf- !D2Ó �@ �&v �Í.��.

• sorted_datav clustered §iE Í� 9:� �$� U�V�partitionzÈ�f O,� create index �@ jA� �� üÙ/01`�f O, �ä ����. +, üÙ? unpartitioned U�V� ¡å ��� m0, partitioned U�V� ¡å Aµ$ ��� m0- ��2� í4 �y üÙ � 2^- 012� ¡åÌ ��� m0- ��2� üÙ¬ wx��.

• ignore_dup_row üÙ 01

• fillfactor üÙ 01

@AB CD UV

clustered ignore_dup_row | allow_dup_row

Unique, clustered ignore_dup_key

nonclustered åK

Unique, nonclustered ignore_dup_key, ignore_dup_row

93

create index

• on segmentname u/ 012O U�V ���v w� ¯K(Ö� �� ¯K(Ö- fA

• max_rows_per_page u/ 012O U�V$ ��� 2$ �� 2/ fA

• ! 3-4� partitioned U�V$ unpartitioned U�V� Aµ���� �� U�V/ m02� �- BO ���.

� 3-4: clustered HIJ5 O-P� QR sorted_data MN ES

��� � �� � QD

• with statistics u/ 012O §iE� 6S _ �� kEÔK¥p¦ - fA� wx��. kEÔK¥? ¾� �±¿ � _ �� ÝÞ §&� +:2� � - 8A2� � 01���.

• _� sysstatistics 2/ 6��Ö2f �Ó §iE- �Í�234 p¦ 0/ 01.��. �J© 24 optdiag�  ¡� �¦- ÕÃûf �x��.

�� WX YZ

• fillfactor, max_rows_per_page, reservepagegap? §iE h�f� �� �� ­®Z� C\/ ��� w¬¹ .��.

• fillfactor� MN locking ­# ±1���. allpages-lockedU�V� clustered §iE� U�V� ��� h�f ;</ ½Ó, �� MN §iE� §iE� �G �r ;</ ���.

• max_rows_per_page� allpages-locked U�V� §iE h�fÌ ±1���.

UV partitioned 12 unpartitioned 12�� åK 1� X�, ��� ñ*,

partitionQ �2� �\, �Ò� £ t�.

1� q� 1�IS T# X�, ��� ñ*, �Ò� £t�.

with sorted_data iq�

with sorted_data onsame_segment

�Ò� £i t�?��.��� X� q� ñ*R(À2S TU��. 1�" MÀIS TU��.

�Ò� £i t�?��.��� X� q� ñ*R (À2S TU��. 1�" MÀIS TU��.

with sorted_dataignore_dup_rowq� fillfactorq� on other_segmentq� max_rows_per_page

1� X�, ��� ñ*,partitionQ �2� �\, �Ò� £ t�.

���R ñ*2� �Ò� £R t�?��. X�4 (À2S TU��. 1�" MÀIS TU��.

94

3A 9B: create database – create schema

• reservepagegap? MN locking ­#� U�V$ §iE ±1���.

• reservepagegap? �y ¡å §iE� C\ 01 ;</ ���.

• §iEv Í�� �

• §iE� reorg �@� Æ�� �

• clustered §iEv Í�� � nonclustered §iEv ���� �

• reservepagegap 2� create clustered index �@ fAz wZ4 �y ±1���.

• allpages-locked U�V� ��� R §iE h�f

• data-only-locked U�V� §iE h�f �1

• num_pages 2? §iE� �G �r� jýh h�f� Q h�f� kl/ fA2O � C\� ��� � §iEv S£ h�f ve� C\/ �{� w¬¹ .��. '- t,reservepagegap� 10�4 01� 9g� h�f@� Q h�f-2^g nw��.

• allpages-locked U�V� reservepagegap� create clustered index� �Ú fAz4 �� create table�^ alter table� fA�2/ M ÕÃÙ��.

• sp_chgattribute- 012O §iE �� C\ �� e�/  ¡� wx��. sp_chgattribute� e�/  ¡24  ¡ 0¢�U�V §iE� H� �¼ ÚD ±1zf� �x��. reorgrebuild Æ�$ l? ��� �õM �{�� sp_chgattribute 2/ 01.��.

• sp_chgattribute� �A� fillfactor 2? sysindexes� fill_factor _H����. fillfactor� §iE- �Í�� � alter table...lock �@�^ reorg rebuild �@� 8$� ±1���.

.N� yz ) locking ��

• ! 3-5� allpages-locked� data-only locked U�V/ f�2�§iE üÙ/ BO ���. data-only locked U�V� ignore_dup_row� allow_dup_row üÙ? create index d² Æ�zfÌ insert� update 56 d²� Æ�zf �x��. data-onlylocked U�V�� �m � ci� ¢Y 31���.

95

create index

� 3-5: locking ./� �TU? create index MN

! 3-6? �m �/ clustered §iEv w� U�V ci23� D¬� clustered §iE- R�2Ó �Í�� �� �@� d5/ BO ���.

� 3-6: KL � MN� �� V� � �W

data-only locked B�C�P sorted_data yz ��

• create index �� sorted_data üÙ? Q U�V �À m0 56/ �� b�Ì 01� wx��. U�V� ���- A2O �v h�f �{� �Í24 sorted_data üÙ? 01� ÷x��.

• C\ �� e� �� 2/ fA24 sorted_data� Aµ �f S�B� å�.��.

B�C ) .N�� #� D' {(

• m. §iE- ��2O ù §iE� sysindexes� � �Z� ^T>��.

• §iE- �= ÝÞ� ��� ¶�� Adaptive Server� �:�Aµ ¶�� 8$ �� �1? order by u/ ��2�D�.

• U�V� §iE �� AB� DEF G�DH sp_helpindex-Æ�2�D�.

56

@AB CD allpages-locked 12 data-only-locked12@AB YZ W [\ W

clustered allow_dup_rowignore_dup_row

allow_dup_rowignore_dup_row

allow_dup_row

unique clustered ignore_dup_key ignore_dup_key ignore_dup_key

nonclustered åK åK åK

unique nonclustered ignore_dup_key ignore_dup_key ignore_dup_key

UV allpages-locked 12 data-only locked 12�� åK Æ.# Qï Õ�S 2615R ��2y oò

- �t2� �Ò� Åt�# ��?��.Æ.Q ��?��. �Ò� Åt�#Qï Õ�S 15084 ��2y oò-�t?��.

allow_dup_row �Ò� Æ. D Åt�Q ��?��. �Ò� Æ. D Åt�Q ��?��.ignore_dup_row "Duplicate row was ignored" Õ�S- 5

�5y Æ.Q oò- �t?��. �Ò�Åt�# ��?��.

Æ.Q ��?��. �Ò�R Åt�2É Zñ À� �N���.

�# $% "#SQL92 Transact-SQL ÎÍ

96

3A 9B: create database – create schema

7� create index ��? Á�Ö� U�V ¼�&© wZW �� 01&© #¬� ÷x��.

89 �� – alter table, create table, drop index, insert, order by �, set, update

��� ���� – sp_addsegment, sp_chgattribute, sp_helpindex, sp_helpsegment, sp_spaceused

���� – optdiag

create plan�� Abstract Plan(AP)/ �.��.

�� create plan query plan [into group_name][ and set @new_id ]

���� query¾�� SQL àEÖ- ��2� 7&_ ���, �g  ·� �Å   i��.

planAbstract Plan(AP) !"#/ ��2� 7&_ ���, �g  ·� �Å   i��.

into group_nameAbstract Plan(AP) Kï� �[/ fA.��.

and set @ new_id  � Abstract Plan(AP)� ID HU- return.��.

�� 1 fA� ¾�� Abstract Plan(AP)/ Í�.��.

create plan "select * from titles where price > $20" "(t_scan titles)"

�� 2 dev_plans Kï� ¾�� Abstract Plan(AP)/ Í�2Ó   @id Abstract Plan(AP) ID- return.��.

declare @id intcreate plan "select au_fname, au_lname from authors where au_id = ’724-08-9931’ " "(i_scan au_id_ix authors)"into dev_plansand set @idselect @id

97

create procedure

�� • create plan? into� fA� Kï Abstract Plan(AP)/ H�.��. Kï �[/ fA2f �Z4 "�� Z� ¦� Kï ¦�/ H�.��.

• create planZ� fA� ¾�� Abstract Plan(AP)? ��� SQL7Z� Ý0zf �ZW ¦�? ��� Abstract Plan(AP) 7Z� Ý0zf �x��. ·� ¦�? SQL àEÖ� U³z� Z� Ý0zf �x��. create plan/ 012O Í�� MN ¦�? create plan 7 fA� ¾�- Æ�2O ÚD AL� O,- Ý0=> .��.

• Kï w� �� ¾� ¦� l? SQL àEÖv w� ¡å setplan replace onZ� replace M�- 01 v�2© => .��. KJf �Z4 create plan �@ �&v �Í.��.

• and set u� 012S � @new_id- ��=> .��.

• into- 012O fA2� Abstract Plan(AP) Kï� �9 £�=> .��.

56 create plan? Transact-SQL L�i��.

7� create plan ��� Á�Ö� MN 01&i��. �ä� %¬� 01��� ��2f �x��.

89 �� – set, plan

��� ���� – sp_add_qpgroup, sp_find_qplan, sp_help_qpgroup,sp_set_qplan

create procedure�� 2^ �Y� 01& fA �g  - vh w� �� G�DH ·

� L� �� G�DH(ESP)- �.��.

�� G�DH �/ �� SQLJ �@ �� �7 R 01 AB�79 ��� create function(SQLJ)/ ��2�D�.

�� create procedure [owner.]procedure_name[;number][[(]@parameter_name

datatype [(length ) | (precision [, scale ])][= default][output]

[, @parameter_name datatype [(length ) | (precision [, scale ])]

98

3A 9B: create database – create schema

[= default][output]]...[)]][with recompile] as {SQL_statements | external name dll_name}

���� procedure_name G�DH� �[i��. #%& õö/ X => 2W   v � ÷x��. "� ���Q�E� O) 01&v ¼�� l? �[ �= �� G�DH- Í�234 ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&i��.

;number p+ drop procedure 7Z� M R�� w¬¹ d+� �[�G�DH- Kï¿2� � 01z� üÙ A i��. d+� ¤1 G�K¥ 01z� G�DH� BB � ­#Z� Kï¿���. '- t, ordersä� ¤1 G�K¥ 01z� G�DHv orderproc;1, orderproc;2 *+ ¡å �7? �y$ lx��.

drop proc orderproc

�Å Kï/ R�.��.

G�DHv Kï¿z4 Kï �� ù G�DH- R�� � ÷x��. '- t �y �7? 01� ÷x��.

drop procedure orderproc;2

��� Adaptive Server- Æ�2� ¡å G�DH- Kï¿� ÷x��. �v«�� MN �� G�DHv Ó�� Å#%&- ßÓ g%±Z� R�� w¬¹ G�DH Kï¿-312f �¬¹ => .��. G�DH Kï¿- 312f �Z34 DEF B² �{&� DEF G�DH sp_configure- 012O �� �g  allow procedure grouping/ ��A=> .��.�v«$ ��� &¯� �1? ��� �� ���- ��2�D�.

99

create procedure

parameter_name G�DH �� §&� �[i��. ù �g  � 2? G�DH- Æ�� � �C���. create procedure 7� �g  �[? �, 0¢i��. G�DH §&� ��2f �x��.

�g  �[ ¢� @ SUv �> 2W #%& õö/ X => .��. @ SU- ��� �g  �[? �� 30&v � wx��. �g  � G�DH� �Å   i��. �ä� l?�g  �[/ �� G�DH¬ 01� wx��.

�g  2 ;.&v é: 7&v ��z w/ ¡å �+!� � ½> .��. ���Q�E �[�^ ¼�& �[�@�!v t wZm� � �[Z� �A� Å �[/ ��.��. 7& �g  2� .& 7&� D52� ¡å¬ �+!� � ½> .��.

datatype[(length) | (precision [, scale])]�g  � ��� ��i��. ��� �� �� &¯� �1? 1� "DEF R 01& A� ��� ��"/ �Ó2�D�. �� G�DH �g  � text ·� image ��� ���^ Á�Ö��� text ·� image§ 01& A� ��� ��/ vh ÷x��.

char, varchar, unichar, univarchar, nchar, nvarchar, binary, varbinary ��� ��? �U ² length- ��=> .��. 0�- Í]�¡å Adaptive Server� �g  2/ 1&� truncation.��.

float ��� ��? �A @AB(P)- �U ² !D.��. A�¬(P)- Í]� ¡å Adaptive Server� |}~� Á�Ö A�¬(P)- 01.��.

numeric R decimal ��� ��? precision R scale/ �U� �Ó y@� �Ô.��. precision$ scale/ Í]� ¡å AdaptiveServer� Á�Ö precision 18$ scale 0/ 01.��.

default G�DH �g  � Á�Ö2/ A�.��. Á�Ö- A�2401&� �g  2/ �C2f �Ó G�DH- Æ�� wx��. Á�Ö� Y v z> .��. G�DHv ìý� likevw� �g  �[/ 012� ¡å �! 7&(%, _, [ ] R [^])-��� wx��('� 2 ��).

Á�Ö� NULL� � wx��. G�DH A�� �g  2� NULL+ ¡å _� �:- fA� wx��('� 3 ��).

100

3A 9B: create database – create schema

output�g  v return �g  =/ ^T���. � G�DH- U�� execute �@Z� K 2/ return� wx��. U�� G�DH� AB- return234 return �g  - 01.��('� 5��).

��� G�DH� O) X/ �= �g  2/ return234ù G�DH� v� t? X� G�DH- U�2� execute �@/ ��2O �g  �[ output üÙ/ ��=> .��.

output ìý�� (� out� 01� wx��.

with recompileAdaptive Serverv � G�DH �� ¦�/ H�2f �Ó G�DHv Æ�� �@� � ¦�/ Í��/ Î.��. G�DH� Æ�� +í±§ ¡å, Ú � ¦�� ��� � � üÙ u/ 012�D�. with recompile u? L� �� G�DH� Æ�� ;</ ½f �x��.

SQL_statements G�DH� _=> � �:- fA.��. Ø � ���SQL 7¬ ��� wfÌ create view, create default, create rule, create procedure, create trigger R use� �Ð���.

create procedure SQL 7? declare, if...else, while, break, continue, begin...end, goto ��V, return, waitfor, /* comment */ �� 2^ �Y� �[ � �- ��.��. G�DH A�� �g  - ��� ¬ wx��.

SQL 7? ±uk �Az w� ¡å �� ���Q�E� Å- ��� wx��.

external nameL� �� G�DH- Í�.��. as external name 7/ 0124as external name number �g  - 01� ÷x��.

dll_nameL� �� G�DH- �"2� � v t w� d± ð ä�ã)�(DLL) ·� C� ä�ã)� �[/ fA.��. dll_name? L�& ÷� fA2<^ Windows NT� .dll ·� Sun Solaris� .so *� |}~ jA L�&- 012O fA� wx��.L�&- fA� ¡å �Å dll_name/ �+!� �Z�D�.

101

create procedure

�� 1 U�V �[� �g  � fA� ¡å G�DH showind�={ �[$ ={ _ w� §iE� �[$ ID HU- !D.��.

create procedure showind @tabname varchar(30) as select sysobjects.name, sysindexes.name, indid from sysindexes, sysobjects where sysobjects.name = @tabname and sysobjects.id = sysindexes.id

�y? showind- �2� � 31z� �7 �#i��.

execute showind titlesexecute showind @tabname = "titles"

·� �+�^ 7:� { H� �7§ ¡å �y �7¬ 31���.

showind titles

�� 2 � G�DH� 01&v �g  - �C2f �? ¡å DEF U�V �� AB- !D.��.

create procedure showsysind @table varchar(30) = "sys%" as select sysobjects.name, sysindexes.name, indid from sysindexes, sysobjects where sysobjects.name like @table and sysobjects.id = sysindexes.id

�� 3 � G�DH� �g  v NULL(Ú, 01&v �g  -fA2f �? ¡å)+ � _� �:- fA.��.

create procedure showindnew @table varchar(30) = null as if @table is null print "Please give a table name" else select sysobjects.name, sysindexes.name, indid from sysindexes, sysobjects where sysobjects.name = @table and sysobjects.id = sysindexes.id

�� 4 � G�DH� A �g  - Û2Ó K 8$- output �g  § @result return.��.

create procedure mathtutor @mult1 int, @mult2 int, @result int output as select @result = @mult1 * @mult2

102

3A 9B: create database – create schema

3g� A - �P2O G�DH- Æ�24 select 7? ÛÜ/ �2Ó 2/ �{2fÌ return �g  - ��2f� �x��.

mathtutor 5, 6, 32(return status 0)

�� 5 � '�� G�DH� execute 7 M G�DHv U�&2/ return� w¬¹ �g  �[� w� output/ ��.��.

declare @guess int select @guess = 32 exec mathtutor 5, 6, @result = @guess output

(1 row affected) (return status = 0) Return parameters: @result ----------- 30

execute 7§ @result� �� �g  R Ñe� �g  � ;<��y$ l� �Pz> .��.

@parameter = value

• 2�  ¡ O, �¦÷� return �g  � 2? ¢Y BÓ���.

• @result� mathtutor� �P� �g  �[�m� U�2� 7: ��2f �é¬ ���.

• @result�  ¡� 2/ execute 7� �{�   w� U�& return2oä¬(� ¡å @guess) &�� ��þ(@result)éÒ !D���.

�� 6 7:^ U� G�DH w� �v SQL 7 return �g  - 01� wx��. � '�� G�DH U� d² ��   �[ @store H�2O execute 7 �y� �]u� @guess� 2/012� ­®/ BO ���. SQL 7:� +,§ execute 7return �g  - 0124 7:� Ñe� 7/ Æ�2S �return 2� ��þ$ �Ú §Ë���.

103

create procedure

declare @guess int declare @store int select @guess = 32 select @store = @guess execute mathtutor 5, 6, @result = @guess output select Your_answer = @store, Right_answer = @guess if @guess = @store print "Right-o" else print "Wrong, wrong, wrong!"

(1 row affected) (1 row affected) (return status = 0)

Return parameters: @result ----------- 30

Your_answer Right_answer ----------- ------------ 32 30 (1 row affected) Wrong, wrong, wrong!

�� 7 i� �g  @in/ $é �� �g  @outZ� Ä2� xp_echoä� L� �� G�DH- Í�.��. G�DH Ä��xp_echoä� � wZW ��+z sqlsrvdll.dll�ä� DLL�ðÂ���.

create procedure xp_echo @in varchar(255), @out varchar(255) outputas external name "sqlsrvdll.dll"

�� • G�DH- Í�� � G�DH �[ R �g  � �Ú execute�@/ Æ�2O Æ�� wx��. G�DHv 7:� { H� �7§ ¡å execute ìý� ÷� �[/ fA� wx��.

• sp_hidetext- 012O syscomments H�� G�DH� �ñàEÖ- Á0 wx��.

• �� G�DH 7:v �C±Z� Æ�z4 Adaptive Server�@@error �«   - 0Z� �A.��.

104

3A 9B: create database – create schema

� �m

• �� G�DHv vh w� �� �g  � 255i��.

• G�DH� �� �Å R �«   g � 01 v�� ÎM� �=�Ì �����.

• �� G�DH� �� àEÖÀ? 16MBi��.

• create procedure 7? p+ 7:� �� 7$ �Ú 01� ÷x��.

• G�DHv �� ���Q�E� Å- ��� wfÌ "����Q�EÌ �� G�DH- Í�� wx��. G�DH� ��2� Å� G�DH Í� D� £�=> .��.Å- ��2S � Í�2� ¡å� G�DH � Å-Í�� wx��.

G�DH w� alter table/ 012O _/ �v� �y G�DH � w� ={ _/ ��� ÷x��.

• create procedure 7� select *- 012� ¡å G�DH(execute with recompile üÙ/ 012oä¬)� 01&v U�V �v� � _/ �,� ÷x��. G�DH- �2Ó �Í�=> .��.

• �� G�DH �� Å(=D U�V ��)- Í�2Ó R�� ÷ZW l? �[Z� � Å- Í�� wx��. AdaptiveServer� G�DH- ��+� �v é: Æ�� � �� G�DH A�� Å- Í�.��.

��! §iE R� R �Í�$ l? ���Q�E �� jA�  ¡? Å ID-  ¡D� wx��. Å IDv  ¡z4�� G�DH� &dZ� ���+zÓ ÂSv (\ Kv� wx��. � ÂS Kv- �= (\� C\/ no �D�.

�x Kx /���

• as external name �7/ 0124 create procedure� L� �� G�DH(ESP)- *¹.��. L� �� G�DH� Transact-SQL�@ �� u� � � - Æ�.��.

• Windows NT� ESP � � C ÂT= �U �Ë/ U�=�� ² ���. U�24 Open Serverv Windows NT� �U¨�- f�2f �S �7 XP �P �&v �Í2© ���.

105

create procedure

• ÝÈE��- f�234 ESP � � Open Server srv_yield � - 012O XP �P E��v l<^ t? å� ¶�� ��E��- Æ�� w¬¹ +D �p2Ó �D +A/ né>.��.

• DLL ÝÞ ÎÄ�Þ? |}~ �ä ����. Windows NT� DLL �+ �[ ÝÞ ¶�� �y$ lx��.

a ¤1 G�K¥/ ��� ÁßÔ�

b "� ÁßÔ�

c DEF ÁßÔ�(SYSTEM32)

d PATH ³¡   ^_� ÁßÔ�

DLL� ¨y ¯ ÁßÔ� ÷/ ¡å DLL� w� ÁßÔ�-��2¬¹ PATH- �A2�D�.

UNIX |}~� ÝÞ ­®? |}~@� ����. DLL�^C� ä�ã)�- è� � �&v �Í� ¡å $SYBASE/lib-ÝÞ.��.

u� ¡� �[? f�zf �x��.

��� /���

• DEF ��&� sybsystemprocs ���Q�E � DEF G�DH- Í�� wx��. DEF G�DH �[? 7& "sp_"� D5=> .��. G�DH �[/ fA2O � G�DH-Ø ���Q�E�¬ Æ�� wx��. sybsystemprocs���Q�E �[Z� �A� ��� ÷x��. DEF G�DH Í� �� &¯� �1? ��� �� ���- ��2�D�.

• DEF G�DH 8$� Æ�z� Y9 �ä �- wx��. '- t, DEF G�DH sp_foo� db_name() DEF � - Æ�2Ó Æ�� ���Q�E �[/ return.��. pubs2���Q�E� Æ�� ¡å 2 "pubs2"- return.��.

use pubs2sp_foo------------------------------ pubs2

sybsystemprocs ���Q�E� Æ�� ¡å 2 "sybsystemprocs"- return.��.

use sybsystemprocssp_foo

106

3A 9B: create database – create schema

------------------------------ sybsystemprocs

-� /���

• G�DH ��? � �� G�DHv �� �� G�DH- U�� � �Í.��.

• �� G�DH- U�2� G�DH- Æ�24 U�� G�DH� U� G�DHv Í�� ŠܯE� wx��.

• �� X? U�� G�DHv Æ�/ D5� �  ^Ó U�� G�DHv Æ�/ C�� � òX��. �� 16g �� X/ 6$� ¡å Ö×ØÙ �&v �Í.��.

• �� G�DH- �[ ·� Æ� G�DH �[ ��   �[Z� U�� wx��.

• "� �� X? @@nestlevel �«   H����.

/��� return :�

• �� G�DH� return CDäÓ 2� A 2/ return� wx��. return Y� Ä�� �C±Z� Æ�� G�DH- ^T�<^ �Í� ) ��/ fA.��.

• �� G�DH- Æ�24 ={ Y� Ä�- &dZ� return.��. Adaptive Server� "� �y Y� Ä�- return.��.

]^ �F

0 p"�Ì- Qï å� MÀY

-1 Ð&- åK

-2 ��� �� Qï

-3 p"r�- ��3(deadlock)IóK

-4 Ú: Qï

-5 EF Qï

-6 � *+, Qï

-7 �� ;4V W# `� Qï

-8 §���S T# 6; FN

-9 ��ê :�Q ���K

-10 §��� 6; { §

-11 §��� 6; { §

-12 ��A q� �Ò�- ádY

-13 ������- ádY

-14 2�î8 Qï

107

create procedure

� -15� -99� <� 01/ �= '(z wx��.

• 01&v return 7� 01& A� return Y�- Í�� wx��. Y�� 0� -99 �Ð� A v � wx��. �y '�� Ê �� ¦(� ��� �4 "1"/ K Ð �� MN ¡å� "2"- return.��.

create proc checkcontract @titleid tid as if (select contract from titles where title_id = @titleid) = 1 return 1 else return 2checkcontract @titleid = "BU1111"(return status = 1)checkcontract @titleid = "MC3026"(return status = 2)

• Æ�2� d² � �Y� )v �Í24 v� t? u�2�w� Ä�v return���. 01& A� return 2? DEF A�2B� å�.��.

�j f�h

• �� G�DH �[/  ¡234 sp_rename/ 01.��.

• L� �� G�DH �[/  ¡234 G�DH- R�2Ó f�2� � �[/  ¡2Ó ���+� �y G�DH- �Í�.��.

• G�DHv ��� #%&v é: U�V �[, _ �[ ·� � �[/ ��2� ¡å create procedure �@ ¢ quoted_identifier- �A2Ó ù �[/ 4 �+!� �> .��. G�DH-Æ�� �� quoted_identifier üÙ/ �A2f .EB ���.

• ��2� Åv �[�  ¡� ¡å G�DH- R�2Ó �Í�=> .��.

108

3A 9B: create database – create schema

• �� G�DH �� create table R dbcc �@ 01� Å �[? �� 01&v �� G�DH- 01� ¡å Å ¼�&�[Z� �A=> .��. '- t, U�V marytab/ ¼��01& "mary"� �� 01&v � U�V/ Æ�� w¬¹23� ¡å �� G�DH(� �@Z� 01� �) � &��U�V �[/ �A=> .��. K ��� G�DH- Æ��� Å �[� L§z> 2S �7i��. �� 01&v G�DH- 0123Ó D¬24 Adaptive Server� 01& "mary"v ¼�� U�V/ ÝÞ2Ó �� G�DH- Æ�2� 01&v ¼�� marytab�ä� U�V? ÝÞ2f �x��.

�� G�DH �� �� 7 01� Å �[('- t,select ·� insert)? G�DHv ��+� � �[� L§zS �7 �A� ��v ÷x��.

�� B�C ) /���

• =D U�V� "� ¯Ù Í�zÈZ4 =D U�V/ ��2� G�DH- Í�� wx��. G�DH �� Í�� =D U�V? G�DHv £�24 0äs��. &¯� �1?Transact-SQL User's Guide- ��2�D�.

• sp_help� l? DEF G�DH� =D U�V� 5d2fÌtempdb� 01� ¡åÌ 5d���.

/���� yz �D

• �� G�DH �� set �@/ 01� wx��. �,Ô�set üÙ? G�DH- Æ�� d² ��2Ó K �y� �� �AZ� mà.��.

K)^ Å ¼�&§ 01&- ��2� identity_insert� l?set üÙ/ 0124 Å ¼�&v é: 01&� �� G�DH- Æ�� ÷x��.

/���� #� D' {(

• G�DHv ��2� Å �� BÓ�- B34 sp_depends- 01.��.

• syscomments H�� create procedure 7� àEÖ- !D234 G�DH �[/ �g  � 2O DEF G�DH sp_helptext- 01.��. sp_helptext- 01� � G�DHv w� ���Q�E- 01=> .��. DEF G�DH� àEÖ- !D234 sybsystemprocs ���Q�E� sp_helptext- Æ�2�D�.

• DEF L� �� G�DH� K f� DLL ¸¹/ B34 sybsystemprocs ���Q�E� sp_helpextendedproc/ 01.��.

109

create procedure

56

7� create procedure ��? �� 01&© #¬� w� ��� ¼�&v Á�Öi��.

G�DH 01 ��? grant �@/ 012O �D±Z� ,O=>2W revoke �@Z� _¼� wx��.

_`a* YZ a bc) < d< G�DH- Í�� � AdaptiveServer� U�V�^ �¨� G�DHv ��2� Å- Ý0� ��/ Ìtf �x��. �ä� ={ ŠܯE2f F2oä¬G�DH- �C±Z� Í�� wx��. MN �� Ý0� 01&v G�DH- Æ�� � �Í.��.

_`a* e! a bc) < d< G�DH- Æ�� � Å �� �� Ý0� G�DH� MN ��� Åv l? 01&v ¼�� §f O, �ä Päs��.

• G�DH� Å- �� 01&v ¼�� ¡å U�&� Åbc ܯE- ,O=> .��. '- t, G�DHv 01&v ܯE� ÷� U�V� 2^� �,/ �24 G�DH Æ� �&v �Í.��.

• G�DH� ={ Å� l? 01&v ¼�2Ó wfÌ j%�õö� ±1���. U�&v bc ܯE� ÷fÌ U�&� G�DH ŠܯE2� "^D± ��"/ &dZ� ß©���. 01&© U�V$ � �� bc ܯE- ,O2f �é¬ �� G�DH �� ��� ܯE ��/ ,O� wx��. �ä� �� G�DH� B² ÎÄ�Þ� � wx��. '- t, G�DH U�&� U�V� jA �$ _Ì Ü¯E� wx��.

^D± �� õö �� &¯� �1? ��� �� �����z wx��.

89 �� – begin...end, break, continue, declare, drop procedure, execute, goto Label, grant, if...else, return, select, waitfor, while

��� ���� – sp_addextendedproc, sp_helpextendedproc, sp_helptext, sp_hidetext, sp_rename

�# $% "#SQL92 Transact-SQL ÎÍ

110

3A 9B: create database – create schema

create procedure(SQLJ)�� SQL !D- Java A± μ� �v2O SQLJ �� G�DH- Í

�.��. 01& �C �g  - 312Ó 8$ set R �� �g  - return� wx��.

�� G�DH �/ �� Transact-SQL �@ �� �7 R 01AB� 98 h�f� "create procedure"- ��2�D�.

�� create procedure [owner.]sql_procedure_name([ [ in | out | inout ] sql_parameter_name

sql_datatype [( length) | (precision[, scale]) ]

[, [ in | out | inout ] sql_parameter_namesql_datatype [( length) | (precision[, scale ]) ] ]

...])[modifies sql data ] [dynamic result sets integer] [deterministic | not deterministic] language java parameter style javaexternal name 'java_method_name

[ ( [java_datatype[, java_datatype...]] ) ]'

���� sql_procedure_nameG�DH� Transact-SQL �[i��. #%& õö/ X =>2W   v � ÷x��. "� ���Q�E� O) 01&v¼�� l? �[ �= �� G�DH- Í�234 ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&i��.

in | out | inout^_� �g  � M�- fA.��. in? i� �g  - out? �� �g  - ^T�Ó inout? i�§ dD �� �g  § �g  - ^T���. Á�Ö M�� ini��.

111

create procedure(SQLJ)

sql_parameter_nameG�DH �� §&� �[i��. ù i� �g  � 2? G�DH- Æ�� � �C���. �g  � �, 0¢i��.SQLJ �� G�DH� §&- 012f �x��.

�g  �[? #%&� õö/ �ä> .��. �g  2;.&v é: 7&v ��z w/ ¡å �+!� � ½>.��. ���Q�E �[�^ ¼�& �[� @�!v twZm� � �[Z� �A� Å �[/ ��.��. �g  2� .&� D52� ¡å �+!� �> .��.

sql_datatype [(length) | ( precision [, scale])]�g  � Transact-SQL ��� ��i��.

sql_datatype? SQL G�DH ��i��.

modifies sql dataJava μ�v SQL ���- ÑÕ2Ó øÓ A2� SQL/ U��/ ̂ T���. � � Á�Ö�W �+� �"i��. ANSI!X$� �7 U³�/ �= ��zÈx��.

dynamic result sets integerJava μ�v SQL 8$ set/ return� wy/ fA.��. integer� μ�v return� w� 8$ set� �� - fA.��. � 2? �" A�� i��.

deterministic | not deterministic� �7? �� SQLJ U³ CÉ6Å�� U³�/ f�.��.

language javaÐ, �Ë� Java� 5�zÈy/ fA.��. SQLJ �� G�DH� � ui��.

parameter style javaÂT= D Ð, �ËZ� �P� �g  v Java �g  =/fA.��. SQLJ �� G�DH� � ui��.

externalcreate procedurev SQL Ð� G�KÒÌ �� 5�� Ð, �Ë �� SQL �[/ A��/ ^T���.

112

3A 9B: create database – create schema

nameÐ, �Ë(Java μ�)� �[/ fA.��. ‘java_method_name [ java_datatype[{, java_datatype} ...]]’ *�fA� �[? 7&_ ����W 5? �+!� �> .��.

java_method_nameÐ, Java μ�� �[/ fA.��.

java_datatype�N� w� Java ��� �� ·� 8$ set/ fA.��. � ? Java μ� ��i��.

� '�� A - Û2O 2^� A - return2� SQLJ G�DH java_multiply- Í�.��.

create procedure java_multiply (param1 integer,param2 integer, out result integer)

language java parameter style javaexternal name 'MathProc.multiply'

�� • create procedure 7 �� 31g� in, inout, out �g  - ��� wx��.

• ANSI !X/ X 234 @ SU- �g  �[ ¢ f @�D�. 2fÌ isql ·� �� kJava `ä��Ö� SQLJ ��G�DH- Æ�� ¡å �g  �[ ¢ @ SU- �[ fA ¶�- f*��.

• SQLJ create procedure �7? SQLJ ANSI !X$� U³�/ �� Transact-SQL create procedure �7$ ����. AdaptiveServer� l? ­®Z� ù ��� �� G�DH- Æ�.��.

7� create procedure ��? �� 01&© #¬� w� ��� ¼�&v Á�Öi��. G�DH 01 ��? grant �@/ 012O �D±Z� ,O=> 2W revoke �@Z� _¼� wx��.

89 �� – create function(SQLJ), drop procedure

��� ���� – sp_depends, sp_help, sp_helpjava, sp_helprotect

113

create proxy_table

create proxy_table�� CIS(Component Integration Services) 1% – _ ̧ ¹/ fA2f �Ó

G¹D U�V/ Í�.��. CIS(Component Integration Services)� �Ï U�V� á? ÎT���� _ ¸¹/ ��.��.

�� create proxy_table table_name[ external [ table | directory | file ] ]at pathname

���� table_name�e 7 01� �Å G¹D U�V �[/ fA.��. table_name? �y �#/ vs��.

dbname.owner.object

OS� dbname$ owner� �, 0¢�W �Å ���Q�E� ¼�& �[/ ^T���. dbname� fAzf �Z4 U�V? "� ���Q�E Í�zW, ownerv fAzf �Z4 U�V? "� 01&� ¼�&v ���. dbname�^ owner- fA� ¡å �Å table_name/ §1 ,U� �> .��. dbnameÌ fA� ¡å� owner �: !D&v �> .��.

external table Åv �Ï U�V ·� �=/ ^T���. external table? Á�Ö�m� � u? �, 0¢i��.

external directoryÅv "/tmp/directory_name [;R]"$ l? �#� ¡�� !Dz�ÁßÔ�=/ fA.��. üÙ "R"? recursive- ^T���.

external fileÅv "/tmp/filename"$ l? �#� ¡�� !Dz� �+=/fA.��.

114

3A 9B: create database – create schema

at pathname�Ï Å� �:- fA.��. pathname? server_name.dbname.owner.object �#/ 01.��. OS�

• server_name(� )? �Ï Å- ��2� �P� �[i��.

• dbname(�,)? � Å- ��2� �Ï �Pv ��2����Q�E �[i��.

• owner(�,)� �Ï Å- ¼�2� �Ï �P 01&� �[i��.

• object(� )� �Ï U�V ·� �� �[i��.

� '�� �Ï U�V t1 �Nz� t1�ä� G¹D U�V/ Í�.��. CIS(Component Integration Services)� �Ï U�V� _¸¹/ ��.��.

create proxy_table t1at "SERVER_A.db1.joe.t1"

�� • create proxy_table? create existing table �@�  �i��. createproxy_table/ 012O G¹D U�V/ Í�2fÌ create existingtable$ P� _ ¸¹/ fA2f �x��. CIS(Component Integration Services)� �Ï U�V� á? ÎT����_ ¸¹/ ��.��.

• at ìý�� �C� �: AB� sp_addobjectdef DEF G�DH� �C2� AB� lx��. ABv sysattributes U�VH����.

• �Ï �P Åv £�2f �Z4 �@� Æ�zf �Ó )v �Í.��.

• Åv £�24 �Å DEF U�V� 6��Ö���. MN _� 01zW U�V�^ � �� _$ _ e�� ás��.

• CIS(Component Integration Services)� _� ��� ��/ Adaptive Server ��� ��Z� &dZ�  ³.��.  ³� �zf �Z4 create proxy_table �@? U�V A�- 312f �x��.

• �Ï �P U�V� §iE ABv ��zW sysindexes DEFU�V� �/ Í�2� � 01.��. �- �= §iE� ìv Adaptive Server 1� A�zW ¾� üÈ@�H� U�V w� MN §iE- Ó3.��.

115

create role

• G¹D U�V/ A�� �� U�V �= update statistics�@/ ��.��. �J© 24 ¾� üÈ@�Hv �§ ¶�� ��2O .�±§ �,/ � wx��.

56

7� create proxy_table ��� Á�Ö� U�V ¼�&�W �� 01&© #¬� ÷x��.

89 �� – create existing table, create table

create role�� 01& A� T(role)/ Í�2Ó Í� D fA� T(role) 31z

� VU Ì� ½S, �¼ VU 0� R �� �K§ �& W - fA.��.

�� create role role_name [ with passwd "password"[, "passwd expiration" | "min passwd length" | "max failed_logins" } option_value ] ]

���� role_name� T(role)� �[i��. �P Ó�=> 2W #%& õö/ X => .��.   v � � ÷x��.

with passwd01&v T(role)/ Z�¿2S �= i�=> 2� VU- �v.��.

passwordT(role) �v� VUi��. VU� 0�� ±¬ 6&v z> 2W #%& õö/ X => .��. VU   - 01� ÷x��.

passwd expirationVU Ì� ½S- + p�� fA.��. 0� 32676 0�� 2/ 01� wx��.

min passwd lengthfA� �K§ ��� �¼ VU 0�- fA.��.

max failed_loginsfA� �K§ 31 v�� �K§ �& D¬ ¼ - fA.��.

�# $% "#SQL92 Transact-SQL ÎÍ

116

3A 9B: create database – create schema

option_valuepasswd expiration, min passwd length ·� max failed_logins� 2/ fA.��.

�� 1 doctor_role�ä� T(role)/ Í�.��.

create role doctor_role

�� 2 VUv physician§ doctor_role�ä� T(role)/ Í�.��.

create role doctor_role with passwd "physician"

�� 3 intern_role �� VU ÌS- �A.��.

create role intern_role, with passwd "temp244",passwd expiration 7

�� 4 intern_role 31z� �� �K§ �& W - �A.��.

create role intern_role with passwd "temp244",max failed_logins 20

�� 5 intern_role �� �¼ VU 0�- �A.��.

create role intern_role with passwd "temp244",min passwd length 0

�� • create role �@? 01&v �¦2� ��$ ��� w� T(role)/ Í�.��. create role 01 ­® �� &¯� �1? ��� �� ���- ��2�D�.

Å �� ܯE- M��2Ó ��2� AB� set role �@/ ��2�D�.

• master ���Q�E� create role/ 01.��.

• Í� D T(role) VU- �v234 with passwd password u/01.��. VU- T(role) �v� ¡å � T(role) ,O�01&� T(role)/ Z�¿2� VU- fA=> .��.

� � T(role) VU- �v2� AB� alter role �@/ ��2�D�.

�� 01& A� T(role) �v� VU� ÌSv ÷x��.

• T(role) �[? �P� Ó�=> .��.

117

create rule

• T(role) �[? 01& �[$ lé�� ² ���. 01&� l? �[� w� T(role)/ Í�� wfÌ ��/ ,O� �Adaptive Server� T(role) �� 01&© ,O2O �[ ab/ =8.��.

�[ ab �� &¯� �1? grant role �@/ ��2�D�.

� �m

• �P ¯Ù{ Í�� w� �� T(role) � 1024i��. 2fÌ 32T(role)? sa_role R sso_role$ l? Sybase DEF T(role) '(z wx��. �ä� �P ¯Ù{ Í�� w� 01& A� T(role)� �� � 992i��.

• �v� VU- 012O T(role)/ Í�� ¡å 01&� �K§� � Á�Ö� ={ T(role)/ Z�¿� ÷x��. ={ T(role)/ ,O� 01&v �K§� � Á�Ö� T(role)/ Z�¿=> 2� ¡å �v� VU- 012O T(role)/ Í�2f@�D�.

56

7� create role/ 01234 DEF B² �{&v z> .��.

create role ��? grant all �@ ��zf �x��.

89 �� – alter role, drop role, grant, revoke, set

��� ���� – sp_activeroles, sp_displaylogin, sp_displayroles, sp_helprotect, sp_modifylogin

create rule�� jA _ ·� 01& A� ��� ��� MN _ �= 31 v�

� 2� ¬Î§/ fA2Ó Ü¯E õö/ Í�.��.

�� create rule [[ and | or ] access][owner.]rule_name as condition_expression

���� accessܯE õö/ Í�2Ó wy/ Î.��. ܯE õö �� &¯� �1? ��� �� ���� 11� "01& �� ��"- ��2�D�.

�# $% "#SQL92 Transact-SQL ÎÍ

118

3A 9B: create database – create schema

rule_name� õö� �[i��. #%& õö/ X => 2W   v � ÷x��. "� ���Q�E� O) 01&v ¼�� l? �[�= �� õö/ Í�234 ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&i��.

condition_expressionõö/ A�2� �]/ fA.��. where u ��� !"#�� wZW ÕÛ ÑÕ&, �¦ ÑÕ& in, like, between *� ��� wx��. K)^ _�^ �� ���Q�E Å- ��� ÷x��. ���Q�E Å- ��2f �� �� � � 8'F ( G34!.

condition_expression? 2^� §&- 01.��. §&� @ SU c- vfW update ·� insert �@/ �= i�� 2/ ��.��. õö/ Í�� � 2/ ^T�� �[�^ SU- 01� wfÌ { 7&� í�D @ SUv z> .��. 7&�¾¿ Y � �+!� �Ó �A Y ¢� "0x"v �> .��.

�� 1 advance� 2/ $1000 9ÌZ� ��2� limitä� õö/ Í�.��.

create rule limitas @advance < $1000

�� 2 pub_id� 2/ 1389, 0736 ·� 0877� ��2� pubid_rule�ä� õö/ Í�.��.

create rule pubid_ruleas @pub_id in ('1389', '0736', '0877')

�� 3 value� 2/ ¢Y fD� 7&� D52¬¹ ��2� pictureä� õö/ Í�.��.

create rule pictureas @value like '_-%[0-9]'

�� • õö� àEÖ- ÁS34 sp_hidetext- 01.��.

• õö �[/  ¡234 sp_rename/ 01.��.

� �m

• "� ���Q�EÌ õö/ Í�� wx��.

• õö/ Í�� {D ���Q�E �9 £�2� ���� õö� ±1zf �x��.

119

create rule

• create rule 7? p+ 7:� �� 7$ �Ú 01� ÷x��.

• Adaptive Server� �C2� ��� ��� ̂_ �� text, image·� timestamp õö/ §�� ÷x��.

• l? �[� w� � õö/ Í�2S � õö/ R�=> 2W R�2S � õö� §�- =�=> .��. �y/ 01.��.

sp_unbindrule objname [, futureonly]

�.� ~�

• _�^ 01& A� ��� �� õö/ §�234 DEFG�DH sp_bindrule/ 01.��. ={ �7? �y$ lx��.

sp_bindrule rulename, objname [, futureonly]

• 01& A� ��� �� §�� õö? 2/ ci2<^={ ��� _/ 6��Ö� � Z�¿���. õö? ={ ���   ci� 2/ UEÖ2f .34!.

• õö? _� ��� ��$ U³z> .��. '- t,

@value like A%

�� l? ¡å� AL2<^ �]±§ .& _ �� õöZ�� 01� ÷x��. õö� §�� _$ U³zf �/¡å Adaptive Server� §�� �v é�ä 2/ ci23ÓD¬� � ) ÎDf- Í�.��.

• S£ õö� §�- =�2f �Ó _�^ ��� �� �� õö/ §�� wx��.

• _ §�� õö? v� �á §�� õö O, �¦÷� 01& A� ��� �� §�� õöB� ¢Y å�.��. �y !� õö� �9 £�2� _$ 01& A� ��� �� õö/ §�� � å� ¶�- ^T���.

120

3A 9B: create database – create schema

� 3-7: XY ZH[ A\ ]Q

~� ) NULL

• õö? _ A�- �D2f �x��. NULL 2/ 312� _ õö/ §�� ¡å õö àEÖ NULL� ��z wf�oä¬ NULL/ _ ^D±�<^ �D±Z� ci� wx��. '- t "@val in (1,2,3)" ·� "@amount > 10000"/fA2� õö/ Í�2Ó � õö/ NULL 2/ 312� U�V _ §�� ¡å O�k NULL/ ={ _ ci� wx��. _ A�� õö/ �D.��.

�V, ) ~�

• _� Á�Ö� õö M ��z w� ¡å Á�Ö� õö�A�� ¬Î§ � w> .��. õö$ ab2� Á�Ö� cizf �x��. Á�Ö- ci23Ó D¬� �@� AdaptiveServerv ) ÎDf- Í�.��.

~� hX� integrity constraint ��

• create table 7 check integrity constraint- 012O õö/ A�� ¬ wx��. K)^ � �( �]? ={ U�VÌ ={2W �� U�V� §�� ÷x��. integrity constraint�� �1/ B34 create table R alter table/ ��2�D�.

~�� #� D' {(

• õö �� BÓ�- áZ34 sp_help- 01.��.

• syscomments DEF U�V H�� õö àEÖ- !D234õö �[/ �g  � 2O DEF G�DH sp_helptext- 01.��.

• õö/ jA _�^ 01& A� ��� �� §�� � ={ ID� syscolumns ·� systypes DEF U�V H����.

56

f@^? g hi

��� �� jk CD) f@^, �l hi

() f@^, �l hi

*+, X9 ��� ��

� øù� � øù4 c&

'­ åK

� � øù� � øù4 c&

� øù� � øù4c&

�# $% "# ��

SQL92 Transact-SQL ÎÍ SQL92->* EF4 *+2Ñ øù4 t�2�É create table F9 check �4 *+?��.

121

create schema

7� create rule ��? �� 01&© #¬� w� ��� ¼�&vÁ�Öi��.

89 �� – alter table, create default, create table, drop rule, drop table

��� ���� – sp_bindrule, sp_help, sp_helptext, sp_hidetext, sp_rename, sp_unbindrule

create schema�� ���Q�E 01& �� U�V, � R ��� � My/ �.

��.

�� create schema authorization authorization_namecreate_oject_statement

[ create_object_statement ... ][ permission_statement ... ]

���� authorization_name���Q�E� "� 01& �[�> .��.

create_object_statementcreate table ·� create view 7i��.

permission_statementgrant ·� revoke �@i��.

newtitles, newauthors, newtitleauthors U�V, tit_auth_view � R ={ ��/ �.��.

create schema authorization pogo create table newtitles ( title_id tid not null, title varchar(30) not null)

create table newauthors ( au_id id not null, au_lname varchar(40) not null, au_fname varchar(20) not null)

create table newtitleauthors ( au_id id not null, title_id tid not null)

create view tit_auth_view as select au_lname, au_fname

122

3A 9B: create database – create schema

from newtitles, newauthors, newtitleauthors where newtitleauthors.au_id = newauthors.au_id and newtitleauthors.title_id = newtitles.title_id

grant select on tit_auth_view to public revoke select on tit_auth_view from churchy

�� • Eì@� "� ���Q�EÌ Í�� wx��.

• �� � ���äÓ¬ 2� authorization_name? "� 01& �[�> .��.

• 01&� ? � �@ ��/ v³> .��(create table R createview). 01&v �� ���Q�E 01&v ¼�� U�V�- Í�24 01&v �- Í�� �v é�ä �- �= ��� ܯE- D¬� � � �� ��/ Ý0.��.

• create schema �@? �y ¡å B����.

• Aõ �@ B�&("go"� isql� Á�Ö)

• create table, create view, grant, revoke Ð� MN �7

• create schema 7 �� �� 7 �&v �Í2� ¡å �Å �@? 2^� p�� TI(roll back)zÓ �@? é� ��¬ ÷x��.

• create schema� U�V, � R �� �� AB- DEF U�V �v.��. create schema� Í�� Å- R�234 ±u� drop �@(drop table ·� drop view)/ 01.��. Eì@ ,Oz<^ _¼� ��? schema creation 7 Ð,� !Xgrant R revoke �@/ 012O  ¡� wx��.

56

7� create schema� MN ���Q�E 01&v Æ�� wx��. 01&� Eì@ fA� Å- Í�� ��, Ú create table Rcreate view ��� w> .��.

89 �� – create table, create view, grant, revoke

���� – isql

�# $% "#SQL92 56 (� >*

123

create schema

124

4 ���� ��: create table – create view

create table�� � U�V R �,± integrity constraint- Í�.��.

�� create table [database .[owner ].]table_name (column_name datatype[default {constant_expression | user | null}]{[{identity | null | not null}]

[off row | [ in row [ (size_in_bytes) ] ][[constraint constraint_name ]

{{unique | primary key}[clustered | nonclustered] [asc | desc][with { fillfactor = pct,

max_rows_per_page = num_rows, }reservepagegap = num_pages }]

[on segment_name]| references [[database .]owner .]ref_table

[(ref_column )]| check (search_condition)}]}...

| [constraint constraint_name]{{unique | primary key}

[clustered | nonclustered](column_name [asc | desc]

[{, column_name [asc | desc]}...])[with { fillfactor = pct

max_rows_per_page = num_rows ,reservepagegap = num_pages } ]

[on segment_name]|foreign key (column_name [{,column_name}...])

references [[database.]owner.]ref_table[(ref_column [{, ref_column}...])]

| check (search_condition) ... }[{, {next_column | next_constraint}}...])[lock {datarows | datapages | allpages }][with { max_rows_per_page = num_rows,

exp_row_size = num_bytes, reservepagegap = num_pages,identity_gap = value } ]

[on segment_name ][ [ external table ] at pathname ]

125

create table

���� table_name � U�V� �D±§ �[i��. U�V� �� ���Q�E wZ4 ���Q�E �[/ fA2W ���Q�E l?�[� U�V� � �Y wZ4 ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&�W database� Á�Ö2? "� ���Q�Ei��.

U�V �[�   - 01� ÷x��. U�V �[? ���Q�E �� K�Ó ¼�& �= Ó�=> .��. set quoted_identifier on� w� ¡å U�V �[ �= �Ô #%&-01� wx��. KJf �Z4 #%& õö/ X => .��. ��� U�V �[ �� &¯� �1? 7� "!"#, #%& R �! 7&"� #%&- ��2�D�.

U�V �[ ¢ ��� SU(#) ·� "tempdb.."- âO =D U�V/ Í�� wx��. &¯� �1? 7� "!"#, #%& R�! 7&"� #� D52� U�V(=D U�V)/ ��2�D�.

01&v sysusers U�V ^_z wÓ ={ ���Q�E�= create table ��� w� ¡å �� ���Q�E U�V/Í�� wx��. '- t, ���Q�E otherdb newtable�ä� U�V/ Í�234 �y$ l� .��.

create table otherdb..newtable

·�

create table otherdb.yourname.newtable

column_nameU�V� _ �[i��. � �[? U�V� Ó�=> .��.set quoted_identifier on/ 01� ¡å _ �= �Ô #%&- 01� wx��. KJf �Z4 #%& õö/ X => .��.��� _ �[ �� &¯� �1? 190 h�f� "#%&"-��2�D�.

datatype_� ��� ��i��. DEF ·� 01& A� ��� ��/01� wx��. jA ��� ���� �U ² 0� n/fA=> .��.

datatype(n)

A�¬(P) p� ¼ � �2 &ã s- ��2� ¡å¬ wx��.

126

4A 9B: create table – create view

datatype(p,s)

&¯� �1? "��� ��"/ ��2�D�.

���Q�E� Java- 01� w� ¡å datatype? ���Q�E �:� DEF `ÒE^ 01& A� `ÒE§ Java `ÒE� �[� � wx��. &¯� �1? Java in AdaptiveServer Enterprise- ��2�D�.

default_� Á�Ö2/ fA.��. Á�Ö- fA2Ó ���- ci� � 01&v _� 2/ �C2f �? ¡å Adaptive ServervÁ�Ö2/ ci.��. Á�Ö� ci/ �2� 01& �[/ ci2� Y !"# user ·� NULL 2/ ci2� null� � wx��. Adaptive Server� tabname_colname_objid� �#Z� Á�Ö� �[/ Í�2W OS� tabname? U�V �[�¨y 10&�Ó colname? _ �[� ¨y 5&�W objid� Á�Ö� Å ID HUi��. IDENTITY e�/ vA _ ��� Á�Ö� _ 2 ;</ ½f �x��.

constant_expression_ �� Á�Ö2Z� 01� Y !"#i��. _�^ �����Q�E Å� �[/ ��� � ÷fÌ ���Q�EÅ- ��2f �� �� � � ��� wx��. � Á�Ö2? _� ��� ��$ U³z> .��. KJf �Z4Adaptive Serverv Á�Ö- ci23 � � ��� ��  ³ )v �Í.��.

user | null01&v 2/ �C2f �? ¡å Adaptive Serverv 01& �[�^ NULL 2/ Á�Ö� ci2¬¹ fA.��. user� ¡å_ ��� ��? char(30) ·� varchar(30)� z> .��. null�¡å _? NULL 2/ 31=> .��.

identity_ IDENTITY e�� wy/ ^T���. ���Q�E� ùU�V? ��� numeric�Ó Ef+� 0§ IDENTITY _/ 2^vh wx��. IDENTITY _? 6��Ö� ÷ZW NULL/ 312f �x��.

IDENTITY _? Adaptive Server� &d Í�z� ä� HU ·� 0� HU� l? ¶� HU- H�.��. IDENTITY _� 2? U�V� ù �/ Ó�2© ^T���.

127

create table

null | not nullÁ�Öv ÷/ ¡å ���- ci2� d² Adaptive Server�d5/ fA.��.

null? 01&v 2/ �C2f �/ ¡å Adaptive Serverv NULL2/ �{2¬¹ fA.��.

not null? Á�Öv ÷� ¡å 01&v NULL� é: 2/ �C=> �/ fA.��.

null ·� not null/ fA2f �Z4 Adaptive Server� not null/ Á�Ö� 01.��. K)^ sp_dboption/ 012O � Á�Ö-�³24 SQL !X$ U³z� Á�Ö Ìt wx��.

off row | in rowJava-SQL _/ �$ %¬� �¼(off row) ·� � bc �{�H� �¼(in row) � © å H��f- fA.��.

Á�Ö� off rowi��. &¯� �1? Java in Adaptive ServerEnterprise- ��2�D�.

size_in_bytes� �(in-row) _� �� ÂS- fA.��. � �(in-row) H�� Å� ���Q�E �P� h�f ÂS R ST   �ä�� 16K �Ö- ��� wx��.

constraintintegrity constraint� �[/ ¼g.��.

constraint_name�( �]� �[i��. #%& õö/ X => 2W ���Q�E� Ó�=> .��. �� ·� check �( �]/ fA2f �? ¡å Adaptive Server� tabname_colname_objectid �#� �[/ Í�.��. OS� tabname? U�V �[� ̈ y 10&�Ó colname? _ �[� ¨y 5&�W objectid� �( �]�Å ID HUi��. unique ·� Primary ì �( �]� �[/fA2f �? ¡å Adaptive Server� tabname_colname_tabindid�#� �[/ Í�.��. OS� tabindid� U�V ID� §iE ID� 7&_ Ñ8i��.

unique!D� _� l? 2/ vA g� �� £�� ÷¬¹ 2/ ��.��. � �( �]? alter table/ 012O �( �]�R�z� ¡åÌ R�� w� unique §iE- Í�.��.

128

4A 9B: create table – create view

primary key!D� _ ·� �� l? 2/ ßf �� _� 2/ ��2m� 2? NULL� � ÷x��. � �( �]? alter table/ 012O �( �]� R�z� ¡åÌ R�� w� unique §iE- Í�.��.

clustered | nonclusteredunique ·� primary key �( �]Z� Í�� §iEv clustered·� nonclustered §iE=/ fA.��. clustered� primary key�( �]� Á�Ö�Ó nonclustered� unique �( �]� Á�Öi��. clustered §iE� U�V{ 2^Ì w/ wx��.&¯� �1? create index- ��2�D�.

asc | desc�( �] �= Í�� §iE- ù _ �= �[�¶Z� Í�� §f, �8�¶Z� Í�� §f fA.��. Á�Ö��[�¶i��.

129

create table

fillfactorS£ ��� � §iE- Í�� � Adaptive Serverv ù h�f- Ñ@^ j¦ §f fA.��. fillfactor kl? §iE- Í�� �Ì 01���. ���v  ¡zm� h�f� j� A¬� jA XZ� �fzf �x��.

fillfactor� Á�Ö� 0�W create index 7 with fillfactor- ��2f�/ � 01���(sp_configure- 012O 2�  ¡zf ��¡å). fillfactor- fA� � 1$ 100 0�� 2/ 01.��.

fillfactor 0? C�k jýA h�f- vA clustered §iE� C�k jýA �G h�f- vA nonclustered §iE- Í�.��.clustered §iE� nonclustered §iE� §iE B-Ö� � aÔ� #� C\/ no p��. fillfactor-  ¡� ��� <� ÷x��.

fillfactor- 100Z� �A24 Adaptive Server� ù h�fv 100%jýA clustered §iE� nonclustered §iE- M Í�.��. fillfactor 100? �v� ���v ÷� øS �1 U�VÌ ±1���.

100B� 5? fillfactor 2(j%� ¡å§ 0? �Ð)? Adaptive Serverv C�k jýff �? h�f � §iE- Í�2¬¹.��. fillfactor 10? 8´ �? ���- H�2� U�V §iE- Í�2� ¡å .�±+ wfÌ, 5? fillfactor 2? ù §iE(·� §iE� ���)v o �? H� C\/ �f2¬¹.��.

CIS(Component Integration Services)- Z�¿24 �Ï �P�= fillfactor- 01� ÷x��.

��! fillfactorv w� clustered §iE- Í�24 Adaptive Servervclustered §iE- Í�� � ���- �7�2S �7 ���v��2� H� C\� # ;</ 9q��.

130

4A 9B: create table – create view

max_rows_per_page��� h�f� �� � §iE� �G X h�f- ��.��. fillfactor� P� ���- ci� �^ R�� � max_rows_per_page 2? �f���.

max_rows_per_page� 2/ fA2f �/ ¡å Adaptive Server�U�V/ Í�� � 0� 2/ 01.��. U�V$ clustered §iE� 2? 0$ 256 0�i��. nonclustered §iE �� h�f{ �� � � §iE ì� ÂS �ä ����. AdaptiveServer� fA� 2� s� t/ ¡å ) ÎDf- return.��.

max_rows_per_page 2 0? jýA ��� h�f- vA clustered§iE- Í�2Ó jýA �G h�f- vA nonclustered §iE- Í�.��. clustered §iE� nonclustered §iE� §iE B-Ö� � aÔ� #� C\/ no p��.

max_rows_per_page x? 2/ 0124 &½ ܯE2� ��� �� lock ab� òX��. K)^ x? 2/ 0124Adaptive Serverv C�k jýff �? h�f- vA � §iE- Í�2Ó o �? H� C\/ 012¬¹ 2W h�fv oÒ Ô�� wx��.

CIS(Component Integration Services)- Z�¿24 �Ï �P�= max_rows_per_page- 01� ÷x��.

on segment_name�[� fA� ¯K(Ö §iE- Í�2¬¹ fA.��. onsegment_name üÙ/ 012S � disk init- 012O Á �E- 6S¿2Ó sp_addsegment DEF G�DH- 012O ���Q�E ̄ K(Ö- �v=> .��. ���Q�E 01� w� ¯K(Ö �[ ¸¹? DEF ��&© 7�2<^sp_helpsegment- 012�D�.

clustered- fA2Ó on segment_name üÙ/ 0124 §iE��G X� Æ� ��� h�f- ��2Ó wS �7 �Å U�V� 01&v fA� ¯K(Ö� �d.��.

131

create table

references�� integrity constraint� _ ¸¹/ fA.��. 2^� _ �(�] �= 2^� _ 2Ì fA� wx��. �� U�V/��2� U�V � �( �]/ ��24 � )* U�Vci� MN ���v �9 � H U�V w> .��.

� �( �]/ 01234 ��z� U�V references ���w> .��. ��z� U�V� fA� _/ unique §iE(unique �( �] ·� create index 7Z� Í��)� ��=> .��. _/ fA2f �? ¡å ��z� U�V� ={ _ primarykey �( �]� w> .��. ·� ��2� U�V _� ��� ��? ��z� U�V _� ��� ��$ +:=> .��.

foreign key^_� _? Tæ ìv �y references u ^_� _§ U�V�foreign ì=/ fA.��. foreign ì �7? _ X �( �]� é�ä U�V X �( �]Ì 31���.

ref_table��� _� w� U�V �[i��. �� ���Q�E w�U�V/ ��� wx��. �( �]? �� 192g� 01&U�V$ �,±Z� Í�� 56 U�V/ ��� wx��.

ref_column��z� U�V w� _ �[i��.

checkAdaptive Serverv U�V w� MN � �= �2� search_condition �( �]/ fA.��. check �( �]/ U�V�^ _ �( �]Z� fA� wZW create table� _A� O) vf check �( �]/ fA� wx��.

132

4A 9B: create table – create view

search_condition_ 2� check �( �]i��. �y$ l? �( �]� w/ wx��.

• in 01z� Y !"# ¸¹

• �! 7&- ��� w� like 01� �] s.

_$ U�V check �( �]? U�V� Ø _¬ ��� wx��.

!"#? ÕÛ ÑÕ&^ � - ��� wx��. search_condition? �ã¾�, s¦ � (Aggregate function), UEÖ   ·� �g  � ��� ÷x��.

next_column | next_constraint"|"� _ A�^ U�V �( �] A� ��� l? �7/ 012O �v _ A�^ U�V �( �](y@� �Ô)/ ��� wy/ ^T���.

lock datarows | datapages | allpages U�V 01� locking ­#/ fA.��. Á�Ö� lock scheme�� �g  �� �P �Å �Ai��.

exp_row_size = num_bytes'Y � ÂS- fA2Ó datarows R datapages locking ­#$ v  0� �� w� U�VÌ ±1���. �� 2? 0, 1 R U�V� �¼ � 0�� �� � 0� 0�� MN 2i��. Á�Ö� 0�W �� �P� �A� ±1�/ �9.��.

reservepagegap = num_pages|E}Ö(extent) i/�� �{ 56 D jýh h�f� noh Qh�f� kl/ fA.��. fA� num_pages@� ^� U�V/ L�� w¬¹ Q h�f- no ~x��. �� 2? 0-255i��. Á�Ö2? 0i��.

with identity_gapU�V� ID \Ï/ fA.��. � 2? � U�V �=�Ì DEF ID \Ï �A/ çÙ��.

valueID \� #i��.

ID \Ï �A �� &¯� �1? IDENTITY _/ ��2�D�.

133

create table

external table Åv �Ï U�V ·� �=/ fA.��. external table? Á�Ö�W Í]� wx��.

at pathname�Ï Å� �:- fA.��. pathname? server_name.dbname.owner.object;aux1.aux2 �#/ 01.��.OS�

• server_name(� )? �Ï Å- ��2� �P� �[i��.

• dbname(�,)? Åv ��� �Ï �Pv ��2� ���Q�E �[i��.

• owner(�,)� �Ï Å- ¼�2� �Ï �P 01&� �[i��.

• object(� )� �Ï U�V ·� �� �[i��.

• aux1.aux2(�,)� create table�^ create index �@ Æ� ��Ï �P �Pz� 7&_i��. � 7&_? �Pv `ÒE db2§ ¡åÌ 01���. aux1? U�V� �:�DB2 ���Q�E�Ó aux2� U�V� �:� DB2 U�VC\i��.

on segment_nameU�V� �:� ¯K(Ö� �[/ fA.��. on segment_name/ 01� � create database ·� alter database- 012O /�± Á �Ev �9 ���Q�E �{z w> 2W sp_addsegment- 012O ���Q�E ¯K(Öv Í�z w> .��.���Q�E 01� w� ¯K(Ö �[ ¸¹? DEF ��&© 7�2<^ sp_helpsegment- 012�D�.

�� 1 titles U�V/ �.��.

create table titles(title_id tid not null,title varchar(80) not null,type char(12) not null,pub_id char(4) null,price money null,advance money null,total_sales int null,notes varchar(200)null,pubdate datetime not null,contract bit not null)

134

4A 9B: create table – create view

�� 2 compute U�V/ �.��. U�V �[$ _ �[ max�min? '(z wS �7 4 �+!� �x��. total score _ �[� �� CI� t wS �7 4 �+!� �x��. � U�V/ �2S � set quoted_identifier on/ �=> .��.

create table "compute"("max" int, "min" int, "total score" int)

�� 3 unique �( �]/ 012O � p¦ sales U�V$ clustered§iE- Í�.��. pubs2 ���Q�E �: E¡Ö� createtable R create index 7� %¬� wx��.

create table sales(stor_id char(4) not null,ord_num varchar(20) not null,date datetime not null,unique clustered (stor_id, ord_num))

�� 4 g� �� integrity constraint� 2^� Á�Ö- 012Osalesdetail U�V/ Í�.��. salesdet_consträ� U�V X ��integrity constraint, �[� fAzf �? title_id _� _ X ��integrity constraintv wx��. �( �] M �� U�Vunique §iE- ß� _/ fA.��(titles R sales). qty _/ vAdefault u? Á�Ö2Z� 0/ fA.��.

create table salesdetail(stor_id char(4) not null,ord_num varchar(20) not null,title_id tid not null references titles(title_id),qty smallint default 0 not null,discount float not null,

constraint salesdet_constr foreign key (stor_id, ord_num) references sales(stor_id, ord_num))

�� 5 pub_id _ check �( �]� w� publishers U�V/ �.��. � _ X �( �]? pubs2 ���Q�E ��� pub_idrule�� 01� wx��.

create rule pub_idruleas @pub_id in ("1389", "0736", "0877",

"1622", "1756")or @pub_id like "99[0-9][0-9]"

135

create table

create table publishers(pub_id char(4) not null

check (pub_id in ("1389", "0736", "0877","1622", "1756")

or pub_id like "99[0-9][0-9]"),pub_name varchar(40) null,city varchar(20) null,state char(2) null)

�� 6 ord_num _/ sales_daily U�V �� IDENTITY _� fA.��. �/ U�V ¨y ci24 Adaptive Server� 2 1/IDENTITY _ fA.��. �� ci� �@� _ 2� 1g Kv.��.

create table sales_daily(stor_id char(4) not null, ord_num numeric(10,0) identity, ord_amt money null)

�� 7 new_titles U�V �= datapages locking ­#$ 'Y � ÂS 200/ fA.��.

create table new_titles ( title_id tid, title varchar(80) not null, type char(12) , pub_id char(4) null, price money null, advance money null, total_sales int null, notes varchar(200) null, pubdate datetime, contract bit )lock datapageswith exp_row_size = 200

�� 8 datarows locking ­#/ fA2W reservepagegap 2/ 16Z�fA2O |E}Ö(extent) i/�� �{ 56� jýh h�f 15g@� Q h�f � g- no ~x��.

create table new_publishers (pub_id char(4) not null,pub_name varchar(40) null,city varchar(20) null,state char(2) null )lock datarowswith reservepagegap = 16

136

4A 9B: create table – create view

�� 9 unique clustered §iEv f�2� �( �]/ Í�.��.§iE ¶�� stor_id �=�� �[�¶�Ó ord_num �=���8�¶i��.

create table sales_south(stor_id char(4) not null,ord_num varchar(20) not null,date datetime not null,unique clustered (stor_id asc, ord_num desc))

�� 10 �Ï �P SERVER_A �[� t1§ U�V/ Í�2W �Ï U�V �Nz� t1�ä� G¹D U�V/ Í�.��.

create table t1(a int, b char(10))at "SERVER_A.db1.joe.t1"

�� 11 employeesä� U�V/ Í�.��. name? varchar ���Ó home_addr� Address ��� Java-SQL _�W, mailing_addr� Address2Line ��� Java-SQL _i��. Address R Address2Line M ���Q�E �:� Java `ÒEi��.

create table employees(name varchar(30),home_addr Address,mailing_addr Address2Line)

�� 12 �[� mytable�Ó identity _� w� U�V/ Í�.��.ID \Ï? 10Z� �AzÈZW �� ID HUv 10V¹ ÎM�@��{��� / �9.��. �P )v �Í2<^ with nowait- 012O B�� ¡å � � �{� @fO ID HU� ��� �{� �y ID HU 0�� �� \Ï? 10i��.

create table mytable(IdNum numeric(12,0) identity)with identity_gap = 10

�� 13 �[� mytable�Ó identity _� w� U�V/ Í�.��.ID \Ï? 10Z� �AzÈZW �� ID HUv 10V¹ ÎM�@��{��� / �9.��. �P )v �Í2<^ with nowait- 012O B�� ¡å � � �{� @fO ID HU� ��� �{� �y ID HU 0�� �� \Ï? 10i��.

create table mytable(IdNum numeric(12,0) identity)with identity_gap = 10

137

create table

ID \Ï �� &¯� �1? Transact-SQL User's Guide� 7�"Creating Databases and Tables"� "Managing Identity Gaps in Tables"p�/ ��2�D�.

�� • create table? U�V$ �,± integrity constraint- Í�.��.U�V? create table 7� �� ���Q�E- fA2f �Z4 "� _3 w� ���Q�E Í����. 01&vsysusers U�V w<^ ���Q�E create table ��/ vA ¡å �� ���Q�E U�V�^ §iE- Í�� wx��.

• � H � |E}Ö(extent)^ 8 h�fg U�V$ §iE C\� �{���. |E}Ö(extent)v jýh �@� �� |E}Ö(extent)v �{���. U�V �{zÓ 01z� C\ÂS- B34 sp_spaceused- 012�D�.

• char(n) NULL� A�� _� w� CIS(Component IntegrationServices)� create table/ 01� � CIS(Component IntegrationServices)� �Ï �P � _/ varchar(n)� Í�.��.

� �m

• ���Q�E{ �� 20è g� U�V$ U�V{ 250g� 01& A� _/ vh wx��. U�V{ � � 01 v��H� �¼ �=�Ì �����.

• U�V Í�� w� �� _ � �y$ lx��.

• APL(all-pages-locked) U�V$ DOL(data-only-locked) U�V� ÓA 0� _ �= 1024

• Adaptive Serverv �y Y9� U�V/ Í�2oä¬ DML56/ �� � ÂS �� )v �Í� wx��.

• v  0� _� w� �� �Å � ÂSv �� _ ÂS- 6$� ¡å

• p+ v  0� _� 0�v �� _ ÂS- 6$� ¡å

• DOL U�V� 6S _� é: v  0� _� �G5�8191 �Ö ��/ 6$2� ¡å

• Adaptive Server� MN ÓA 0� _� �Å ÂS� � �P1�- o� 2� U�V� locking ­#$ h�f ÂSv 312� ÂSB� 4 ¡å )- BÓ.��. � ��? ! 4-1 ��z wx��.

138

4A 9B: create table – create view

� 4-1: �� � � � �� - APL � DOL

• �{ v  0� ���� �� �Ö � U�V� locking ­# �ä ����. ! 4-2� APL U�V� �� ÂS _ �= ��.��.

� 4-2: APL ��� �� �� �� �� �� ��

! 4-3? DOL U�V� �� _ ÂS �= ��.��.

� 4-3: DOL ��� �� �� �� �� �� ��

locking & �� �� � ! ' � ( '2K(2048¹�£) 1962 1960¹�£

4K(4096¹�£) 4010 4008¹�£

APL ��A 8K(8192¹�£) 8106 8104¹�£

16K(16384¹�£) 16298 16296¹�£

2K(2048¹�£) 1964 1958¹�£

4K(4096¹�£) 4012 4006¹�£

DOL ��A 8K(8192¹�£) 8108 8102¹�£

16K(16384¹�£) 16300 16294¹�£��AQ -' � �� \]IS T� !ã

16K(16384¹�£) 16300 (varlens9 _c �¦ op�Q �� �� = 8191)

8191-6-2 = 8183¹�£��AQ _` -' � �� J� !ã*

* � ô � À oÄ!�Q c0 6¹�£ �� À � Ã�Q c0 2¹�£R\]?��

�� �� � ! ' � ( '2K(2048¹�£) 1962 1948

4K(4096¹�£) 4010 3988

8K(8192¹�£) 8096 8058

16K(16384¹�£) 16298 16228

�� �� � ! ' � ( '2K(2048¹�£) 1964 1954

4K(4096¹�£) 4012 4002

8K(8192¹�£) 8108 7998

16K(16384¹�£) 16300 162290

139

create table

• 8191 �Ö �G5/ 6$2� v  0� _� w� DOL U�V/ Í�2� ¡å ={ _ �/ �v� ÷x��.

• A�� skv 31z� �� � ÂSB� 4 varchar, nvarchar,univarchar ·� varbinary _� w� U�V/ Í�2� ¡å ¡ÓÎDfv ^T^fÌ U�V? Í����. �� �Ö �Y/ � � ci2<^ �Å � ÂS- �� 0�B� Äf© �/ update23Ó D¬24 Adaptive Serverv ) ÎDf- Í�2Ó �@ �&v �Í.��.

�� create table �@� if...else V¹�^ while �G � �Í2� ¡å Adaptive Server� � �]� �§f 8A2S � U�V �� Eì@- Í�.��. U�V� �9 £�� ¡å )v �Í� wx��. l? �[� U�V� ���Q�E÷�f L§.��.

• ��± Á�Ö ·� check �( �]� w� create table/ Æ�2Ó l? 7: ·� G�DH� U�V ���- ci� ÷x��. create� insert 7/ g� �� 7: ·� G�DH �Ô ·� Í�2<^ execute- 012O 56/ g%±Z� �.��.

• Á�Ö- ��2� create table 7 �y   - 01� ÷x��.

140

4A 9B: create table – create view

declare @p intselect @p = 2create table t1 (c1 int default @p, c2 int)

�J© 24 "Variable is not allowed in default"äÓ ̂ T^� ) ÎDf 154v !D���.

b D?

• 01& A� ��� ��� _/ Í�2� ¡å

• 0�, A�¬(P) ·� ¼ � �2 &ã -  ¡� ÷x��.

• NULL ��/ 012O NOT NULL _/ Í�� wfÌIDENTITY _? Í�� ÷x��.

• NOT NULL ��/ 012O NULL _ ·� IDENTITY _/ Í�� wx��.

• IDENTITY ��/ 012O NOT NULL _/ Í�� wfÌ � _? IDENTITY e�/ Ye.��. IDENTITY ��/ 012O NULL _/ Í�� ÷x��.

• v  0� ��� ��� w� _Ì NULL 2/ H�� wx��. ÓA 0� ��� ��� w� NULL _/ Í�24 AdaptiveServer� &dZ� � _ �¤2� v  0� ��� ��Z� ³.��. Adaptive Server� 01&© ��  ¡/ �B2f �x��.

�y !�  ³� ÓA 0� ��� ��$ v  0� ��� ��/ BO ���. moneyn$ l? jA v  0� ��� ��?'(� ��� ��Z� _,   ·� �g  - Í�2� �01� ÷x��.

141

create table

� 4-4: NULL9 %&P? � ESU? �� �� �� ^_

• _ Á�Ö� vf ­®Z� Í�� wx��. Á�Ö- createtable ·� alter table 7� _ �( �]Z� ��2<^ createdefault 7/ 012O Á�Ö- Í�2Ó sp_bindefault- 012O _ §�2� ­®� wx��.

• U�V$ ={ _ �� BÓ�- B34 DEF G�DH sp_help- Æ�2�D�.

�� B�C

• =D U�V? =D ���Q�E§ tempdb H����.

• =D U�V �[� ¨y 13&� ¯Ù@� Ó�=> .��. �)� U�V? "� Adaptive Server ¯Ù�Ì Ü¯E� wx��. �[$ DEF� �C2� .& c9 �ä tempdb..objects H�zW "� ¯Ù� B�� �^ �D±Z�R�� � 0äs��.

• "tempdb.." c- 012O Í�� =D U�V? AdaptiveServer 01& ¯Ù \ C�� wx��. =D U�V? ¼�&v �D±Z� R�2<^ Adaptive Server- �,G� �ef £�.��. 01&� ¯Ù \ U�V/ C�23� ¡åÌ �� G�DH �� "tempdb.." c- 012O =D U�V/ Í�.��. =D U�V/ Æ � C�2� /­f234 �� G�DH� =D U�V/ Í�2Ó R��� # c- 01.��.

�m n� ' jk CD 7% ochar varchar

nchar nvarchar binary varbinary

datetime datetimn float floatn int, smallint, tinyint intn

decimal decimaln numeric numericn

money D smallmoney moneyn

142

4A 9B: create table – create view

• =D U�V? Adaptive Server ¯Ù d² O) 01&v 01� wx��. 2fÌ =D U�V? "guest" 01& ID 2- 012O Í�zS �7 �g jA 01& ¯Ù/ #%� ÷x��. � �Y� 01&v =D U�V/ Í�2� G�¯E-Æ�2� ¡å ù 01&� "guest" 01&�m� uid 2� Mlx��. �ä� =D U�V� Ø 01& ¯Ù� jA 01&- �� §f M w� ­®� ÷x��. SA� sp_addlogin/ 012O =D U�V 01&- �v� wx��. � ¡å g% uid� =D U�V� ={ 01& ¯Ù 01� wfÌ � Y9? v��� éê.��.

• õö, Á�Ö R §iE- =D U�V Ñ�D� wfÌ =D U�V �- Í�2<^ Ö�<- Ñ�D� � ÷x��.

• =D U�V/ Í�� � ��� tempdb..systypes w� ¡åÌ 01& A� ��� ��/ 01� wx��. "� ¯Ù�=�Ì 01& A� ��� ��/ tempdb �v234tempdb- 012� d² sp_addtype/ Æ�2�D�. ��� ��/ ;�±Z� �v234 model/ 01� � sp_addtype/ Æ�� �y Adaptive Server- �D D524 model� tempdb�m0���.

.N� ��

• U�V? &�� clustered §iE- "����". � ¯K(ÖU�V/ Í�� �y �� ¯K(Ö clustered §iE- Í�24 U�V? §iE- Í�� ¯K(Ö� �����.

• ¯K(Öv %¬� °�± Á �E w/ ¡å � ¯K(ÖU�V/ Í�2Ó �� ¯K(Ö nonclustered §iE- Í�24 ci, 6��Ö R �,/ oÒ Ð[© �� wx��.&¯� �1? Performance and Tuning Guide- ��2�D�.

B�C �q B�C? b �G �A

• U�V ·� _� �[/  ¡234 sp_rename/ 01.��.

• U�V�^ _ �[/  ¡� � sp_depends- 012O ØG�DH, Ö�< R �v U�V Bez�f 8A2Ó � Å- �D A�.��.

��! � Be Å- �A�2f �Z4 Adaptive Serverv Å- ���+� �� o �Y 5d2f �x��.

143

create table

FGHI�J KLHIM� .N� DO IP QD

• §iE _ �[ �y asc� desc ìý�- 012O §iE�Aµ ¶�- fA.��. ¾�� order by u fA� ¶���Aµz¬¹ §iE- Í�24 ¾� ¨� � Aµ p¦v Í]���.

integrity constraint D?

• create table 7? SQL !X A�� integrity constraint- �=���Q�E �8� �- f�.��. � integrity constraintu? 01&v U�V ci� w� ���- ��.��.·� Á�Ö, õö, §iE R Ö�<- 012O ���Q�E�8�/ Æ�� ¬ wx��.

integrity constraint� U�V Í� G�¯E � � p¦� �8��- A�2Ó �8� �- Í�2� G�¯E- p¶¿2� ��/ �C.��. K)^ integrity constraint� |E}Ö(extent)v o ��±�Ó Á�Ö, õö, §iE R Ö�<B� ë��±i��.

• U�V X �( �]Z� � �Y� _/ �;2� �( �]/ ��=> 2W _ X �( �]Z� 2^� _Ì �;2��( �]/ ��=> .��. ���? �7i��. _ X �( �]/ _ �[$ ��� �� �y �Ô y@ ¢ p��('� 5 ��). U�V X �( �]/ %¬� y@ �Ô u�i�.��('� 4 ��). Adaptive Server� U�V X$ _ X �( �]/ l? ­®Z� ¨�2�� ­®? �l�4� ��v ÷x��.

• U�V X�^ _ X� �y ��� �( �]/ Í�� wx��.

• unique �( �]? U�V� �� fA� _� l? 2/ ßf �/ / ��.��. ·� primary key �( �]?_ NULL 2/ ßf �/ / ��.��.

• �� integrity(references) constraint� jA _ ci2<^6��Öz� ���v fA� U�V$ _� ���� +:� / ��.��.

• check �( �]? _ ciz� ���� 2/ ��.��.

·� _� NULL 2� 01/ ��2Ó(null ·� not null ìý�) _ �� Á�Ö- �C2O(default u) ��� �8�/ Æ�� wx��.

144

4A 9B: create table – create view

• DEF G�DH sp_primarykey, sp_foreignkey R sp_commonkey-012O AB- DEF U�V H�24 ���Q�E� U�V \� �¦- LÆk � wx��. � DEF G�DH�create table 7� primary key� foreign key ìý�� ì �¦- Æ�2<^ S�/ m�.��. A�� ì �� BÓ�- B34 sp_helpkey- 01.��. &½ 012� �§ �� BÓ�- B34 sp_helpjoins- Æ�.��.

• Transact-SQL? �8� Æ�/ �� O) ÎÄ�Þ/ �C.��. ·� create table� +,� ��� w� �( �] �Ðõö, Á�Ö, §iE R Ö�<- Í�� wx��. �y U�V? integrity constraint- �(2Ó �8� Æ�� �� ­®/ ��.��.

� 4-5: `a- V� .�

Ø ­®/ �,�f O,� �� 0¢ �ä Päs��. '- t, Ö�<� create table ��� B� o mn� ���8� ¨�(': �� _�^ Å ��)- �C.��. ·�create table 7 A�� �( �]? ={ U�VÌ ±1���. õö�^ Á�Ö�� P� �� U�V� §�� ÷ZW alter table/ 012O R��  ¡Ì � wx��. l? U�V�¬ �( �]? �ã¾�^ s¦ � (Aggregate function)- ��� ÷x��.

• create table �@/ 0124 �y ��/ vA �? �( �]t/ ��D� wx��.

• unique �( �]� � U�V� vh w� §iE �ä �����.

• U�V? 2^� primary key �( �]Ì vh wx��.

• U�V� _{ 2^� default uÌ ��� wfÌ l?_ �� �( �]/ A�� wx��.

'- t4 �y$ lx��.

create table)� pq �unique N� �� create unique index (NULL 34 Ø+2� �Q)primary key N� �� create unique index (NULL 34 Ø+2S T� �Q)

references N� �� create trigger check N� ��(��A (�) create trigger

check N� ��(� (�) create trigger q� create rule D sp_bindrule

default � create default D sp_bindefault

145

create table

create table discount_titles(title_id varchar(6) default "PS7777" not null unique clustered references titles(title_id) check (title_id like "PS%"),

new_price money)

� U�V discount_titles� _ title_id� ù integrity constraint- 012O A����.

• ) ÎDf- Í�� �y �� integrity constraint R check �( �] §�� wx��. sp_addmessage- 012O ÎDf- Í�2Ó sp_bindmsg- 012O �( �] §�.��. &¯� �1? sp_addmessage R sp_bindmsg- ��2�D�.

• Adaptive Server� �� �( �]/ Æ�2S � check �(�]/ �v2Ó MN integrity constraint- Æ�� � Ö�<- �v.��. �( �] �&v �Í2O Adaptive Serverv��� A 7/ _¼24 ��� Ö�<v Æ�zf �x��.K)^ �( �] �í? "� Ö×ØÙ/ TI(rollback)2f.34!.

• �� U�V� _ 2/ 6��Ö2<^ �� U�V w�2$ +:2� �/ R�� ÷x��. (H �� U�V�6��Ö2<^ R�� �y �� U�V� 6��Ö2<^R�.��.

• ��z� U�V/ R�2S � ��2� U�V/ R�=>.��. �J© 2f �Z4 �( �] �í� �Í.��.

• U�V A�� �( �] �� �1/ B34 sp_helpconstraint- 01.��.

unique � primary b <c d

• _ X�^ U�V X� unique �( �]/ ��� wx��. unique �( �]? fA� _� MN 2� Ó�� / ��.��. U�V� �? fA� _� l? 2/ vh ÷x��.

146

4A 9B: create table – create view

• primary key �( �]? unique �( �]� o �(±§ ��i��. primary key �( �]/ vA _? NULL 2/ ��� ÷x��.

�� create table 7� unique R primary key �( �]? _�unique ·� Primary ì e�/ A�2� §iE- Í�.��.sp_primarykey, sp_foreignkey, sp_commonkey� _ \� /�± �¦- A�.��. � �¦� §iE� Ö�<- 012O Æ�=> .��.

• U�V X unique ·� primary key �( �]? create table 7%¬� ¢¸Z� ^T^W Í� �§ U�V� 2^ �Y� _�[/ ��=> .��.

• unique ·� primary key �( �]? fA� _ unique §iE- Í�.��. '� 3� unique �( �]? �y �7� �2� ¨� unique clustered §iE- Í�.��.

create unique clustered index salesindon sales (stor_id, ord_num)

�+� ���? §iE �[Z� �( �]� �[/ fA2Osalesind� �A� wx��.

• SQL !X� unique �( �]� A�� _ A�v NULL 2/31� ÷y/ fA.��. Á�Ö� Adaptive Server� _A�� null ·� not null/ Í]24 NULL 2/ 312f �¬¹ _/ A�.��(sp_dboption/ 012O  ¡2f �? ¡å).Transact-SQL� �( �]/ Æ�2� � 012� unique §iE� NULL 2/ ci2� / 312S �7 unique �(�]$ �Ú NULL 2/ 312¬¹ _/ A�� wx��.

• unique �( �]? Á�Ö� unique nonclustered §iE- Í�.��. primary key �( �]? Á�Ö� unique clustered §iE- Í�.��. U�V� clustered §iEv 2^Ì w/ wZm� 2^� unique clustered ·� primary key clustered �(�]Ì fA� wx��.

• create table� unique R primary key �( �]? create index 7o \p� �( �]/ �C2fÌ �y$ l? ��� wx��.

• nonunique §iE- Í�� ÷x��.

• create index� �C2� MN üÙ/ 01� � ÷x��.

• alter table drop constraint- 012O � §iE- R�=> .��.

147

create table

89 integrity constraint

• �� integrity constraint �[4 �( �]/ A�2� � )* U�V ci� ���� � +* U�V +:2� 2/v³> .��. �� integrity constraint� �y �] � 2^�= Ìz���.

• ��2� U�V� �(/ $? _� ���� NULL 2/��.��.

• ��2� U�V� �(/ $? _� ���� ��z� U�V� ={ _ w� ��� 2$ +:.��.

pubs2 ���Q�E- '� t4 salesdetail U�V ci� �(�± «�- S¹)? titles U�V ��� title_idv w> .��. salesdetail? ��2� U�V�Ó titles U�V? ��z�U�Vi��. "� pubs2� Ö�<- 012O � �� �8�/ Æ�.��. K)^ salesdetail U�V? l? 56/ �2S �= � _ A�� �� integrity constraint- ��� wx��.

title_id tidreferences titles(title_id)

• ¾� 31z� U�V ��� �� � 192i��. U�V��� �( �]/ Ý0234 DEF G�DH sp_helpconstraint- 012�D�.

• U�V? �� integrity constraint- &űZ� ��� wx��. '- t, b�$ ��&- ^_2� pubs3� store_employeesU�V� emp_id R mgr_id _ 0� �y$ l? &Å ��-vfÓ wx��.

emp_id id primary key,mgr_id id null

references store_employees(emp_id),

� �( �]? MN ��&v ·� b��W MN b�© ��� ��&v �{z¬¹ =���.

• ��2� U�V� R�z<^ �� integrity constraintv �<� �ef ��z� U�V/ R�� ÷x��(�� integrityconstraint- &űZ� ��2f �� ¡å).

• Adaptive Server� =D U�V �� �� integrity constraint- Æ�2f �x��.

148

4A 9B: create table – create view

• �� 01&� U�V/ ��2� U�V/ Í�234 ��z� U�V references ��� w> .��. references �� �{ �� �1/ B34 grant �@/ ��2�D�.

• U�V X� �� integrity constraint� create table 7 %¬¢¸Z� ^T>��. foreign key u$ 2^ �Y� _ �[ ¸¹/ ��=> .��.

references u w� _ �[? ��z� U�V� _� primarykey �( �]/ �= Primary ì� fAzÈ/ ¡åÌ �,0¢i��.

��� _? ={ �� U�V� unique §iE� ��z> .��. unique �( �]�^ create index 7/ 012O unique §iE- Í�� wx��.

• ��2� U�V _� ��� ��? ��z� U�V _� ��� ��$ +:=> .��. '- t, ��2� U�V(test_type)� col1 ��� ��? ��z� U�V(publishers)� pub_id ��� ��$ +:.��.

create table test_type(col1 char(4) not null

references publishers(pub_id),col2 varchar(20) not null)

• ��z� U�V? �� integrity constraint- A�� � £�=> .��. �� ª� ��2� U�V� ¡å U�V/ dD A�234 create schema 7/ 012�D�. �( �] ÷�U�V/ 2^ Í�2Ó alter table/ 012O ^� �v2�­®¬ wx��. &¯� �1? create schema ·� alter table/��2�D�.

• create table �� integrity constraint� ��� �8�/ Æ�2�\p� ­®/ �C.��. Ö�<� P� �y$ l? 56? �� I34!.

• ���Q�E� �� U�V/ �� Ñ˱§  ¡

• �� _�^ ���Q�E Å- ��2O mn� �� Æ�

• "what-if" Ô- �

149

create table

�� integrity constraint� ��� A� �( �]/ �í� �Ö×ØÙ/ TI(rollback)2f �x��. Ö�<- 0124 �� �8�/ ¨�2� ­® �ä Ö×ØÙ/ TI(rollback)2<^ ¦e� §f O,- �,� wx��.

�� Adaptive Server� Ö�<- Ý02S � �� �8�/Ý02m� �( �]/ �í2� ��� A 7? Ö�<-Æ�2f F.��.

ef �� g�J � integrity constraint ES

• ª� ���Q�E �( �]/ Ìt � Adaptive Server� ù ���Q�E� sysreferences DEF U�V �y AB- H�.��.

� 4-6: � integrity constraint5 QR %&$ '(

• ��2� U�V�^ ���Q�E- 7� ÷� R�� wx��. Adaptive Server� ��� ���Q�E� foreign ì AB- &dZ� R�.��.

• ��2� U�V? ��z� U�V� AB Be±�S �7 Adaptive Server� �y/ 312f �x��.

• ��z� U�V R�

• ��z� U�V� t w� Ð, ���Q�E R� ·�

• sp_renamedb� ù ���Q�E� �[  ¡

� 56/ �2S � alter table/ 012O ª� ���Q�E �( �]/ �<=> .��.

• ª� ���Q�E �( �]/ �v ·� R�2<^ ª� ���Q�E �( �]� w� U�V/ R�� �@� ;</$� ���Q�E- ,- 'G.��.

��! ª� ���Q�E �( �]� w� ���Q�E 'G- +ì ��24 ���Q�Ev æY� wx��.

sysreferences) *+, ��

-./0 12) <��� R0 (

-.40 12) < ��� R0 (

� � ID refkey1 - refkey16 fokey1 - fokey16

��A ID reftabid tableid

������ ID pmrydbid frgndbid

������ �� pmrydbname frgndbname

150

4A 9B: create table – create view

• sysreferences DEF U�V? Ð, ���Q�E� J$ IDHU- H�.��. Adaptive Server� load database- 012O���Q�E �[/  ¡2<^ �� �P� ��� ¡å ���8�/ B�� ÷x��.

��! �� �[Z� ��2<^ �� Adaptive Server� �d2SS �= ���Q�E- 'G2S � (H alter table/ 012O Ð, �� integrity constraint- M R�.��.

check � 9�

• check �( �]? 01&v U�V w� _ ci� w�2/ ��.��. check �( �]? NULL� é: 2/ U�V ci2S � Ìz=> 2� search_condition/ fA.��. search_condition? �y$ lx��.

• in 01z� Y !"# ¸¹

• between 01z� Y !"#� í�

• �! 7&- ��� w� like 01z� �]t

!"#? ÕÛ ÑÕ&� Transact-SQL �� � - ��� wx��. search_condition? �ã¾�, s¦ � (aggregatefunction), UEÖ   ·� �g  - ��� ÷x��.Adaptive Server� =D U�V �� check �( �]/ Æ�2f �x��.

• check �( �]� _ X check �( �]+ ¡å A�� _Ì��� wZW U�V� �� _? ��� ÷x��. U�V X check �( �]? U�V� Ø _¬ ��� wx��.

• create table�� _ A�� O) check �( �]/ 01� wx��.

• check integrity constraint� õö$ Ö�<- 012� �� ­®/ �C.��. �� Í�� U�VÌ ±1zW �� U�V�^ 01& A� ��� �� w� _� ��� ÷x��.

151

create table

• check �( �]? _ A�- �D2f �x��. NULL 2/ 312� _ check �( �]/ ��� ¡å NULL� search_condition ��zf �L¬ ^D±�^ �D±Z�NULL/ _ ci� wx��. '- t null 2/ 312� U�V _ "pub_id in ("1389", "0736", "0877", "1622","1756")" ·� "@amount > 10000"/ fA2� check �( �]/ Í�2� ¡å ={ _ NULL/ ci� wx��. _ A�� check �( �]/ �D.��.

IDENTITY b

• U�V �/ ¨y ci24 Adaptive Server� IDENTITY _ 2 1/ fA.��. ùù� � �? @fO 2B� 1 t? _2/ áx��. � 2? create table 7 w� _ �= ���MN Á�ÖB� å�2<^ sp_bindefault DEF G�DH- 012O _ §����. IDENTITY _ ci� w� ��2? 10 precision - 1i��.

• IDENTITY _ 2/ ci24 01&� _ �� D� 2/fA2<^ )� R�� �/ m�� wx��. U�V ¼�&§ ���Q�E ¼�&^ DEF ��&� Sñ U�V�= set identity_insert table_name on/ 01� � IDENTITY_ 2/ �D±Z� ci� wx��. IDENTITY _unique §iE- Í�2f �Z4 Adaptive Server� 2� Ó��/ L§2f �x��. MN #� A - ci� wx��.

• Æ� _ �[ �� ��� U�V �[Z� �A� syb_identity ìý�- 012O IDENTITY _/ ��� wx��.

• DEF ��&� auto identity ���Q�E üÙ/ 012O �U�V 10&� IDENTITY _/ &dZ� ��D� wx��. ���Q�E� � S�/ 01234 �y$ l� 2�D�.

sp_dboption database_name, "auto identity", "true"

01&v primary ì, unique �( �] ·� IDENTITY _/ fA2f �Ó ���Q�E U�V/ Í�� �@� AdaptiveServer� &dZ� IDENTITY _/ A�.��. � _ SYB_IDENTITY_COL? select * 7/ 012O _/ ÝÞ� �!Dzf �ZW �, ¸¹ _ �[/ �D±Z� ��D�>.��.

152

4A 9B: create table – create view

• �P �&� §= IDENTITY _ 2 0� \Ï� �Í� wx��. \Ï? Ö×ØÙ TI(rollback), � R� ·� IDENTITY_ ��� d ciZ� §= �Í� ¬ wx��. �� \Ï ÂS� identity burning set factor R identity grab size �� �g  � create table ·� select into 7 �C� identity_gap 2 �ä ����. ID \Ï/ �A2� O) ­® 01 �� &¯��1? Transact-SQL User's Guide� 7� "Creating Databasesand Tables"- ��2�D�.

locking ef QD

• U�V locking ­#/ fA234 lock ìý�� �y locking­# � 2^- 01.��.

• allpages locking? ¾� ;<$� ��� h�f� §iE- lock.��.

• datapages locking? ��� h�fÌ lock.��.

• datarows locking? ��� �Ì lock.��.

locking ­#/ fA2f �Z4 �P� Á�Ö locking ­#�01���. �P �Å Á�Ö� lock scheme �� �g  ��A���.

• U�V� locking ­#? alter table �@/ 012O  ¡� wx��.

)* "+ ,-

• C\ �� e� fillfactor, max_rows_per_page, exp_row_size, reservepagegap? �y ­®Z� U�V �� C\ 01/ ��.��.

• fillfactor� §iEv Í�� � h�f OÔ� C\/ nSfÌ +A D\� f^4 fillfactorv �fzf �x��.

• max_rows_per_page� ��� h�f^ §iE h�f� � - ��.��. � - ò=Z�� lock ab/ òOallpages-locked U�V� ���/ g�2� � ½� 01���. max_rows_per_page 2$ datapages^ datarows locking/ fA24 ¡Ó ÎDfv ̂ T>��. U�V� Í�zÓ 2? sysindexes H�zfÌ ^� locking ­#� allpages�  ¡� ¡åÌ � 2� ±1���.

153

create table

• exp_row_size� ��� �� 'Y ÂS- fA.��. §iE� ±1zf �Ó ��� �$ v  0� _� w�data-only locked U�VÌ ±1���. data-only lockedU�V� �P� �� - ò�� � 01���. ̈ yci� �� � 0�v NULL�<^ îfÌ �e 6��Ö� 8$� �� 0�v  ^� U�V ½� ��.��. exp_row_size� �� fA� ÂS�  ¾ w¬¹ ��� h�f C\/ '(.��. allpages-locked U�V/ Í�� � exp_row_size- fA24 ¡Ó ÎDfv ^T>��. U�V� Í�zÓ 2� sysindexes H�zfÌ ̂ � locking ­#� datapages^ datarows�  ¡� � � 2�±1���.

• reservepagegap? Q h�f� jýh h�f� kl/ fA2O |E}Ö(extent) �{/ �2� �@ ±1.��.� 2? MN locking ­#� ��� h�f� §iE h�f #¯ ±1���.

• ! 4-7? C\ �� e�$ locking ­#� ��� �./ BO���. create table �@ U³zf �� �.� ��z4 ¡ÓÎDfv ̂ T^4� U�V� Í����. 2? DEF U�V H�zfÌ ±1zf �x��. U�V� locking ­#�  ¡z e�� ��2© z4 � 2� 01���.

� 4-7: )* "+ ,- � locking ./

• ! 4-8� Á�Ö2$ C\ �� e� �� Á�Ö2/ 01��$- BO ���.

� 4-8: 012 � )* "+ ,-� a4

rZ sc �� jk �� jk !max_rows_per_page " �o �o

exp_row_size �o " "

reservepagegap " " "

fillfactor " " "

rZ 89: 89:; ��< =3max_rows_per_page 0 ´�SQ _c 255#S -�: : 7# À4 SX?��.

exp_row_size 0 ²Ä �& ³÷£34 *+2�É default exp_row_size percentE� Óx'(" úX?��.

reservepagegap 0 8�9£(extent) O� Ý[ : ´�SR ; S TU��.fillfactor 0 p ´�S� -< &ã� �Ò� ´�SQ� ��4 ;=

��.

154

4A 9B: create table – create view

exp_row_size ��

• ¤1 G�K¥� data-only locked U�V î? �/ ci� �y^� � 0�v  ^¬¹ 6��Ö2� ¡å exp_row_size-0124 data-only locked U�V� �� ��� �:� �Pz� W - ò+ wx��.

reservepagegap ��

• �? #� C\/ 012� �@? p+ h�f �{ �� |E}Ö(extent) �{ ­#Z� � C\/ �{.��. reservepagegapìý�- �)� �@$ �Ú 0124 Q h�f- no ~yZ�� Ô�z<^ �� �P� h�f ve�� �e h�f�{� ��h w© .��. ! 4-9�� reservepagegap�±1z� ¡åv ^� wx��.

� 4-9: reservepagegap hS

• U�V �� reservepagegap 2? sysindexes H�zW U�V� � 56� Æ�� � ±1���. H�� 2/  ¡234 sp_chgattribute DEF G�DH- 01.��.

• reservepagegap? 56 U�V�^ 56 U�V� Aµ� ±1zf �x��.

at ES

• at ìý�� �C� �: AB� sp_addobjectdef DEF G�DH� �C2� AB� lx��. ABv sysattributes U�VH����.

Java-SQL b

• ���Q�E� Java- 012� ¡å Java-SQL _/ vAU�V/ Í�� wx��. &¯� �1? Java in AdaptiveServer Enterprise- ��2�D�.

�� jk ��) T� @AB ��) T��� bcp " �Ò�- �Å2� !ãQ� ��

bcp- *+IS TU��.

� bcp > ��AQi �+Iy, clustered ��- J� ��AQ� �+IS TU��.

8�9£(extent) O�� (ÀISTU��.

select into " �? ��AQ �Ò�- åU��.create index q� alter table...constraint

"(clustered �Ò�9 !ã) "

reorg rebuild " "

alter table...lock

(allpages-lockingQ² data-only lockingH" q� � �c")

" "

155

create table

• Java-SQL _� ��� `ÒE(datatype)� Serializable ·� Externalizable §�h�E- �"=> .��.

• U�V/ Í�� � Java-SQL _/ �y$ l� fA� ÷x��.

• foreign ì� fA

• references u� fA

• UNIQUE e�/ vf¬¹ fA

• Primary ì� fA

• in rowv fAz4 H�� 2? ��� �P ·� ��   � h�f ÂS �ä 16K �Ö- 6$� ÷x��.

• off rowv fA� ¡å

• check �( �]� _/ ��� ÷x��.

• distinct- fA2� select� _/ ��� ÷x��.

• e��^ group by u� kª ÑÕ& _/ fA� ÷x��.

B�C� #� D' {(

• sp_help� fA� U�V$ §iE �{� e�(': ÃD §�)/ ^_2Ó, e�� `ÒE, �[, A 2, 7& 2 R ��/ �C2� U�V �� AB- !D.��.

• sp_depends� U�V Be� ���Q�E� �, Ö�< R G�DH �� AB- !D.��.

• sp_helpindex� U�V Í�� §iE �� AB- BÓ.��.

56

�# $% "# ��

SQL92 +£ (� >* �K# Transact-SQL ÎÍ.��.

• ������ ��4 *+2Ñ ��A�5 � ��4 :X

• IDENTITY �

• not null � ³÷£

• asc D desc ��

• reservepagegap ��

• lock �

• on segment_name �

"��ê D *+, X9 ��� ��" q� ��� �� >* XËR ��2n�o.

156

4A 9B: create table – create view

7� create table ��? Á�Ö� ���Q�E ¼�&© wZW ���Q�E ¼�&� � ��/ �� 01&© #¬� wx��.MN 01&� =D U�V/ Í�� wx��.

89 �� – alter table, create existing table, create index, create rule, createschema, create view, drop index, drop rule, drop table

��� ���� – sp_addmessage, sp_addsegment, sp_addtype, sp_bindmsg, sp_chgattribute, sp_commonkey, sp_depends, sp_foreignkey, sp_help, sp_helpjoins, sp_helpsegment, sp_primarykey, sp_rename, sp_spaceused

create trigger�� integrity constraint- Æ�2� � ½� 01z� +B� �� G�

DH§ Ö�<- Í�.��. Ö�<� 01&v fA� U�V� fA� ��� A 7/ D¬24 &dZ� Æ����.

�� create trigger [owner .]trigger_name on [owner .]table_name for {insert , update , delete} as SQL_statements

·� if update u/ 01.��.

create trigger [owner .]trigger_name on [owner .]table_name for {insert , update} as

[if update (column_name ) [{and | or} update (column_name )]...] SQL_statements

[if update (column_name ) [{and | or} update (column_name )]... SQL_statements ]...

���� trigger_nameÖ�<� �[i��. #%& õö/ X => 2W ���Q�E� Ó�=> .��. "� ���Q�E� O) 01&v ¼�� l? �[ �= �� Ö�<- Í�234 ¼�& �[/fA2�D�. owner� Á�Ö2? "� 01&i��. Ö�<-�A2� � ¼�& �[/ 01� ¡å l? ­®Z� U�V �[/ �D±Z� �A=> .��.

Ö�< �[ ��   - 01� ÷x��.

157

create trigger

table_nameÖ�<- Í�� U�V� �[i��. l? �[� U�V� ���Q�E � �Y w/ ¡å ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&i��.

insert, update, deleteØ �.¬ ��� wx��. delete� if update u$ �Ú 01� ÷x��.

SQL_statementsÖ�< �]$ Ö�< d5/ fA.��. Ö�< �]? D¬�insert, update ·� deletev Ö�< d5/ �2¬¹ � §f O,- 8A.��. SQL 7? �g if ìý�v ��2� �ã¾�- ��.��. éÒ� '� 2� ìý� if �y� �ã¾�� Ö�< �]i��.

Ö�< d5? 01& d5(insert, update, delete)� D¬� � ±1���. O) Ö�< d5� fA� ¡å begin$ end� Kï¿���.

Ö�< A� 31zf �� 7 ̧ ¹? Ö�< R Ö×ØÙ/ ��2�D�. Ö�< A� ��� w� deleted R inserted /�±U�V �� AB- B34 161 h�f� "deleted R inserted/�± U�V"/ ��2�D�.

if updatefA� _� update 7� set ¸¹ ��z�f ·� insert ;</ 9:�f O,- UEÖ2� � 01���. �J© 24 fA� Ö�< d5/ fA� _ �� 6��Ö� Ñ�D� wx��('� 3 ��). create trigger 7 � �Y� _/ fA� wZW � �Y� if update 7/ 01� wx��('� 5 ��).

�� 1 titles� ���- �v2<^ ���-  ¡� � ÎDf-��.��.

create trigger reminder on titles for insert, update as print "Don’t forget to print a report for accounting."

�� 2 titles U�V �¤2� title_idv ÷/ ¡å � �/ titleauthor ci2f F2¬¹ .��.

create trigger t1 on titleauthor for insert as if (select count(*)

158

4A 9B: create table – create view

from titles, inserted where titles.title_id = inserted.title_id) = 0

begin print "Please put the book’s title_id in the

titles table first." rollback transaction end

�� 3 publishers U�V� pub_id _�  ¡z� ¡å titles U�V={2�  ¡/ ±1.��.

create trigger t2 on publishers for update as if update (pub_id) and @@rowcount = 1begin update titles set titles.pub_id = inserted.pub_id from titles, deleted, inserted where deleted.pub_id = titles.pub_id end

�� 4 titleauthor� Ø �/ R�� ¡å titles� �¸/ R�.��. �±/ � �Y� H&v HÛ� ¡å titleauthor �� �� ��¬ R����.

create trigger t3 on titleauthor for delete as begin delete titles from titles, deleted where deleted.title_id = titles.title_id delete titleauthor from titleauthor, deleted where deleted.title_id = titleauthor.title_id print "All references to this title have been deleted from titles and titleauthor." end

�� 5 ½� Primary ì- 6��Ö2f F2¬¹ .��. ={ �¸ �� | �Ü� ¦( �Ü/ 6$2f �� ¡å �¸� vÏ�^ ¦(�/ 6��Ö2f F2¬¹ .��.

create trigger stopupdatetrig on titles for update as

159

create trigger

if update (title_id) and datename(dw, getdate()) in ("Saturday", "Sunday") begin rollback transaction print "We don’t allow changes to" print "primary keys on the weekend!" end if update (price) or update (advance) if (select count(*) from inserted where (inserted.price * inserted.total_sales) < inserted.advance) > 0 begin rollback transaction print "We don’t allow changes to price or" print "advance for a title until its total" print "revenue exceeds its latest advance." end

�� • Ö�<� ��� A 7{ 2^gÌ Æ����. while �Gvw� mn� ¾�� update ·� insert- O) H ím� wZW Ö�<� �H Æ����.

,X� ) 89 �rZ

• Ö�<� � KL�(U�V�^ �� Primary ì� foreign ì0�� �¦ �� �8� õö)/ Æ�2O ÑË R�- �C2Ó ÑË 6��Ö- �C2� � ½� 01���(ùù '�2, 3, 4 ��).

• Ö�<� ��� A 7/ C�2Ó Adaptive Serverv �����, õö ·� integrity constraint �í/ Ý0� �Ì Æ����. Ö�< R Ö�<- Æ�2� 7? Ö�< �� TI(rollback)� w� p+ Ö×ØÙZ� _É���. �P )v Ífz4 �Å Ö×ØÙ� TI(rollback)���.

• create trigger- 012� ­®Z� create table 7 A�� �(�]/ 012O �� �8�/ Æ�� ¬ wx��. integrityconstraint �� �1? create table R alter table/ ��2�D�.

160

4A 9B: create table – create view

deleted ) inserted �X= B�C

• deleted R inserted� /�±(gï±) U�Vi��. ��Y 01& d5/ D¬� U�V§ Ö�<v A�� U�V$ lZW01& d5Z�  ¡� �� S£ 2� ̂� 2� t wx��.

• Ö�< d5/ �� §f ·� �© �� §f 8A2S �= deleted R inserted U�V/ Ý0� � wfÌ U�V &Å� Ö�< d5Z�  ¡� ÷x��.

• deleted U�V? delete R update 01zW inserted U�V?insert R update 01���. 6��Ö� ci �y R����. deleted U�V, inserted U�V �ð� ;</ 9q��.

,X� �

• "� ���Q�EÌ Ö�<- Í�� wx��. Ö�<-�A2� � ¼�& �[/ 01� ¡å l? ­®Z� U�V�[/ �D±Z� �A=> .��. Ö�<� "� ���Q�E Ð,� Å- ��� wx��.

• Ö�<� � �Y� U�V ±1� ÷x��. K)^ l?create trigger 7� � �Y� 01& d5 �= l? Ö�<d5/ A�� � wx��('- t, insert R update). U�V? insert, update, delete ùù 2^g �� ¯ g� Ö�<-vh wx��.

• l? 56(insert, update ·� delete)� ¡å U�V�^ _���� Ö�<� ùù �� Ö�<- ÕÃûfÌ ÕÃûS �¡Ó ÎDfv !Dzf� �x��.

• =D U�V Ö�<- Í�� � ÷x��.

• �� Ö�<- Í�� ÷x��.

• DEF U�V� Ö�<- Í�� ÷x��.

• ci`<^ R�� U�V� text ·� image _� �,� Ö�<- 01� ÷x��.

• Ö�< U�V/ A� w� MN ¤1 G�K¥ return�8$- j%2© ¨�2� S�/ Í�=> 2S �7 01&© 8$- return2� select 7 Ö�<- ��Dìf �� � !x��.

161

create trigger

• Ö�<v ��� #%&v é: U�V �[, _ �[ ·� � �[/ ��2� ¡å create trigger �@ ¢ set quoted_identifier on/ Ó ù �[/ 4 �+!� �> .��. Ö�<- Æ���� quoted_identifier üÙ/ �A2f .EB ���.

,X� ) Z`

• �� ñ4� Ö�< �P1�� �g é½ xx��. Ö�<- Æ�2� � ¸�� D\? ÎM�^ ���Q�E Á �E w� �� U�V/ ��2� � �,Ô ¼����.

• Ö�<v ½� ��2� deleted R inserted U�V? /�± U�V�S �7 ���Q�E Á �EB�� �g ÎM�wx��. Ö�<v ��2� �� U�V �: �ä 56¸�� D\� 8A���.

,X� K�P yz �D

• Ö�< �� set �@/ 01� wx��. 01&v U��set üÙ? Ö�<- Æ�2� d² ±1zW ��� �� �AZ� béò��. jk self_recursion üÙ? Ö�< &Å� ��� A� Ö�<- �D Æ�� w¬¹ 2S �= Ö�<�� 01� wx��.

,X� �

• Ö�<v ��2� Å� �[/  ¡� ¡å Ö�<- R�2Ó �Í�=> .��. sp_rename/ 012O Ö�< �[/  ¡� wx��.

• U�V/ R�24 �� Ö�<¬ R����.

2+i5 V�jb� k? lm

• truncate table �@? delete Ö�<� ;</ $f �x��. whereu(MN � �<)� ÷� delete¨� truncate table 7� Æ�z4��� � ��  ¡� S¹zf �Zm� Ö�<- Æ�� ÷x��.

truncate table �@ �� ��? Á�Ö� U�V ¼�&©wÓ �� 0�© #¬� ÷S �7 truncate table 7/ 012O delete Ö�<- Æ � å¼2� ? U�V ¼�&�Ê=i��.

• S¹ O, �¦÷� writetext �@Z�� Ö�<- Æ�DìfF.��.

162

4A 9B: create table – create view

2+i � 2noN

• Ö�<v A�z4 ±1� U�V fA� d5? ¢Y Ö�<&Å� �Ú ^D±Z� Ö×ØÙ� +,v ���. Ö�<�½� )v Íf� ¡å �Å Ö×ØÙ/ TI(rollback)2�� 012<^ jA ��� A� �$- TI(rollback)2�� 01� wx��.

• Ö�<v rollback transaction �@/ ��24 TI(rollback)? �Å 7:- �f2W 7:� �� �7? Æ�zf �x��.

• Ö�< rollback triggerv ��z4 TI(rollback)? Ö�<- Æ�Dì� ��� AÌ ±1���. rollback trigger�@? raiserror 7/ ��� wZW 7:� ��� �7t� Æ����.

• Ö�<� Ö×ØÙ� +,� Æ�zS �7 �y �7$ DEF G�DH� Ö�< 31zf �x��.

• create database, create table, create index, create procedure, create default, create rule, create trigger, create view- ��� MN create �@

• MN drop �@

• alter table R alter database

• truncate table

• grant R revoke

• update statistics

• sp_configure

• load database R load transaction

• disk init, disk mirror, disk refit, disk reinit, disk remirror, disk unmirror

• select into

• �2� 8$(': �( 2)v ��� AZ� ;</ $� � HU Bez� ¡å @@rowcount- 012O O) � ��� A/ UEÖ2Ó(select 7 �ä insert, delete ·� update) ±u� d5/ �.��. �/ return2f �� Transact-SQL 7(': if 7)? @@rowcount- 0Z� �A2m� @@rowcount�UEÖ� Ö�<- D5� � �Í=> .��.

163

create trigger

,X� �S�, ) ^_

• insert ·� update 7/ Æ�� � Adaptive Server� Ö�< U�V$ inserted U�V dD �/ �v.��. inserted U�V� �? ¢Y Ö�< U�V w� � �Y� �� m�i��.

• update ·� insert Ö�<� if update �@/ 012O update ·�insertv jA _/  ¡`�f «p.��. if update(column_name)�_� �, ¸¹�^ values u 2/ �{� �@� insert 7±1���. �D± NULL�^ Á�Ö� _ 2/ �{2m�Ö�<- Z�¿2fÌ ^D± NULL? KJf �x��.

'- t, �y U�V$ Ö�<- Í�2� ¡åi��.

create table junk (aaa int null, bbb int not null) create trigger trigtest on junkfor insert as if update (aaa) print "aaa updated"if update (bbb) print "bbb updated"

_ ·� _ 2/ ci24 _ aaa� bbb �= Ö�<vÆ����.

insert junk (aaa, bbb)values (1, 2)aaa updatedbbb updated

�D± NULL/ _ aaa ci=¬ Ö�<v Æ����.

insert junkvalues (NULL, 2)aaa updatedbbb updated

_ aaa �� Á�Öv w� ¡å Ö�<¬ Æ����.

K)^ _ aaa �� Á�Öv ÷Ó 2� �D±Z� cizf�Z4 Adaptive Server� ^D± NULL/ Í�2Ó Ö�<vÆ�zf �x��.

insert junk (bbb)values(2)bbb updated

164

4A 9B: create table – create view

if update� delete 7� ±1zf �x��.

Kp 2+i � 2+i qr

• Adaptive Server� Á�Ö� �� Ö�<- 31.��. Ö�<��/ ­f234 sp_configure- 012O allow nested triggersüÙ/ �y$ l� 0(off)Z� �A.��.

sp_configure "allow nested triggers", 0

• Ö�<� 16 X ó�ef ��� wx��. �� Ö�<v÷� U�V/ Ö�<v  ¡� ¡å H� Ö�<v Æ�zÓ ¯ H� Ö�<- U�� wZW � p¦v ím���.ÑË� � Ö�<v �� �Gv � ¡å �� X� 6$zÖ�<v �fzÓ Ö�< ¾�v ��� Ö×ØÙ� TI(rollback)���.

�� Ö�<� Ö×ØÙ cizS �7 �� Ö�<� Ø X �&v �Í24 �Å Ö×ØÙ� _¼zW MN ��� A� TI(rollback)���. �&v �Í`�f «p234 ÎDf� ST ) ¨� R ÁPô S�/ �C.��.

• �«   @@nestlevel? "� Æ�� �� X/ ��.��.�� G�DH^ Ö�<v �� �� G�DH^ Ö�<- U�� �@� �� X� Kv2W �� 16� 6$z4 Ö×ØÙ� �f���.

• Ö�<v Ö�<- �D Z�¿Dì� d5/ �2� �� G�DH- U�24 �� Ö�<- 012� ¡åÌ Ö�<v�Z�¿���. Ö�< �� �à - ��2� �]� ÷Z4 �� X �P|�v �Í.��.

'- t, 6��Ö Ö�<v 6��Ö- �2� �� G�DH- U�24 Ö�< R �� G�DH� allow nested triggersv =�� ¡åÌ Æ����. allow nested triggersv �AzwÓ 6��Ö v Ö�< R G�DH �] �= ��zf�� ¡å �� �� X 2§ 16/ 6$� �ef G�DH^Ö�< �Gv ¦e���.

165

create trigger

• Á�Ö� Ö�<� allow nested triggers �� �g  � �A�¦÷� Ö�< �� l? U�V H� ��� A �= &�/ U�2f� �x��. set üÙ§ self_recursion? Ö�< �� ��� A� 8$� Ö�<- �D Æ�� wx��. '- t, U�V w� � _� 6��Ö Ö�<v ��_/ 6��Ö2� ¡å 6��Ö Ö�<� self_recursion� kZ�¿� ¡å � HÌ Æ�zfÌ self_recursion� �A� ¡å� �� 16H Æ�� wx��. &d �àv �Í234allow nested triggers �� �g  ¬ 01 v�=> .��.

,X�� #� D' {(

• Ö�< Æ� ¦�? sysprocedures H����.

• ù Ö�<� ID HUv �{z�� � HU� deltrig _ ±1� U�V �� Å ID- vA sysobjects � �Z� H�zW ±1� U�V �� sysobjects �� deltrig, instrig R updtrig ¢¸Z� H����.

• syscomments H�� Ö�<� àEÖ- !D234 sp_helptext- 01.��.

DEF B² �{&v allow select on syscomments.text column �g  - DEF G�DH sp_configure (�v� ��� AdaptiveServer- Æ�2� � ��)- 012O ��A� ¡å, ={ Ö�< Í�&^ DEF ��&Ì� sp_helptext- �= Ö�< àEÖ- ê wx��.

• Ö�< �� BÓ�- B34 sp_help- 01.��.

• Ö�<v ��2� U�V$ � �� BÓ�- B34 sp_depends- 01.��.

56

7� DEF B² �{&Ì Ö�< Í� ��/ ,O2<^ _¼� wx��. ���Q�E ¼�&� MN 01& U�V� Ö�<-Í�� wx��. 01&� &�� ¼�� U�VÌ Ö�<-Í�� wx��.

create trigger �@/ Æ�� w� ��? Á�Ö� 01&© ,O���.

�# $% "#SQL92 Transact-SQL ÎÍ

166

4A 9B: create table – create view

DEF B² �{&v 01&� Ö�< Í� ��/ _¼� ¡å ={ 01&� sysprotects U�V revoke �� �v���. ={ 01&© create trigger �� ��/ ,O234 grant �@/ H ��=> .��. { H� �@? sysprotects� revoke �/ R�2Ó H� �@? grant �/ ci.��. Ö�< Í� ��� _¼z4 01&� &�� ¼�� U�V�¬ Ö�<- Í�� ÷x��. 01&� Ö�< Í� �� _¼� revoke �@� Æ�� ���Q�EÌ ±1���.

,X� vZ � �j� #� 7� Ö�<- Í�� � Adaptive Server� U�V�^ �¨� Ö�<v ��2� Å- Ý0� ��/ Ìtf �x��. �ä� ={ ŠܯE2f F2oä¬ Ö�<- �C±Z� Í�� wx��. MN �� Ý0� Ö�<vÆ�� � �Í.��.

,X� 12 � �j� #� 7� Ö�<- Æ�� � Å �� �� Ý0� Ö�<� Å- l? 01&v ¼�� §f �ä Päs��.

• Ö�<� Å- l? 01&v ¼�2f �? ¡å Ö�<-Æ�Dì� 01&� Å bc ܯE- ,O=> .��.'- t, G�DHv 01&v ܯE� ÷� U�V��,/ �24 Ö�< Æ� �&v �Í.��. �ЬÖ�<- Æ�Dì� ��� A� TI(rollback)���.

• Ö�<� ={ Å� l? 01&v ¼�2Ó wÓ j%� õö� ±1���. 01&v bc ܯE� ÷fÌ 01&�Ö�<� ŠܯE2� ̂ D± ��/ &dZ� ß© ���. ^D± �� õö �� &¯� �1? ��� �� ���� ��2Ó wx��.

89 �� – alter table, create procedure, create procedure, drop trigger, rollback trigger, set

��� ���� – sp_commonkey, sp_configure, sp_depends, sp_foreignkey, sp_help, sp_helptext, sp_primarykey, sp_rename, sp_spaceused

create view�� 2^ �Y� U�V� ���- B� ­® � 2^§ �- Í�.

��.

167

create view

�� create view [owner .]view_name [ (column_name [, column_name]...)] asselect [distinct] select_statement[with check option]

���� view_name�� �[i��. � �[? ���Q�E �[/ ��� ÷x��. set quoted_identifier on/ 01� ¡å �Ô #%&- 01� wZW, KJf �Z4 � �[?   v � ÷ZW #%&õö/ X => .��. ��� � �[ �� &¯� �1?190 h�f� "#%&"- ��2�D�. "� ���Q�E� O) 01&v ¼�� l? �[ �= �� �- Í�234 ¼�&�[/ fA.��. owner� Á�Ö2? "� 01&i��.

column_name�� _ �¸Z� 01� �[/ fA.��. set quoted_identifieron/ 01� ¡å �Ô #%&- 01� wZW, KJf �Z4_ �[? #%& õö/ X => .��. ��� _ �[ ��&¯� �1? 190 h�f� "#%&"- ��2�D�.

_ �[/ ¢Y �C� wfÌ _ �[? �y ¡åÌ ��.��.

• _/ ÕÛ !"#, � , 7&_ Ñ8 ·� Y � ��� ¡å

• � �Y� _� l? �[/ vA ¡å(B� �§Z� §=)

• �Í� _$� �� �[/ � w� _ �C23 � ¡å('� 3 ��).

_ �[? select 7�¬ �{� wx��('� 4 ��). _ �[/ fA2f �Z4 � _? select 7� _$ l? �[/ ßx��.

select�- A�2� select 7/ D5.��.

distinct �� �m �/ ��� ÷y/ fA.��.

select_statement�- A�2� select 7/ C�.��. � �Y� U�V R ���- 01� wx��.

168

4A 9B: create table – create view

with check option MN ��� A 7/ � �, SX$ kª2O L§`y/ ^T���. �- �= ci`<^ 6��Ö� MN �? �- �= ê w> .��.

�� 1 Sñ U�V titles� title, type, price R pubdate _� �Í��- Í�.��.

create view titles_view as select title, type, price, pubdate from titles

�� 2 "old view"� "new view" �- Í�.��. _ M ��� �[�  ¡���. �� CI/ ��2� MN �� _ �[? 4 �+!� �x��. �- Í�2S � set quoted_identifier on/ 01=> .��.

create view "new view" ("column 1", "column 2")as select col1, col2 from "old view"

�� 3 $5.00 �2� vÏ/ vA �± �� �¸, ¦(� R fÆ�Ü/ ��2� �- Í�.��.

create view accounts (title, advance, amt_due)as select title, advance, price * total_salesfrom titleswhere price > $5

�� 4 Sñ U�V authors� publishers� ��� �- Í�.��. �� �«0v w� ¬D <½2� H&� �[$ D- ��.��.

create view cities(authorname, acity, publishername, pcity)as select au_lname, authors.city, pub_name,publishers.cityfrom authors, publisherswhere authors.city = publishers.city

�� 5 '� 3$ l? A�- vffÌ select 7 �C� _ �¸/vA �- Í�.��.

create view cities2as select authorname = au_lname,acity = authors.city, publishername = pub_name, pcity = publishers.cityfrom authors, publisherswhere authors.city = publishers.city

169

create view

�� 6 �� H& #% �- ^_2� titleauthor� �� �author_codes- �.��.

create view author_codesas select distinct au_idfrom titleauthor

�� 7 Ó�� �± vÏ/ ^_2� title� �Í� � price_list-Í�.��.

create view price_list (price)as select distinct pricefrom titles

�� 8 õ���é Ð,� �� ABv �Ð� stores U�V �- Í�.��. with check option u? ciz<^ 6��Ö� �/ �� �, SX �= L§2W, statev "CA" �Ð� 2/ ß� �? M<,���.

create view stores_calas select * from storeswhere state = "CA"with check option

�� 9 stores_cal� �Í� � stores_cal30/ Í�2W � �� Ý0üÙ/ stores_cal� Ye.��. stores_cal30/ �= ciz<^6��Ö� MN �? "CA"� state 2/ v³> .��. stores_cal30� with check option u� ÷S �7 paytermsv "Net 30" �Ð�2/ ß� stores_cal30/ �= �/ ci2<^ 6��Ö2� �v�.��.

create view stores_cal30as select * from stores_calwhere payterms = "Net 30"

�� 10 stores_cal� �Í� � stores_cal30_check- Í�.��. ��� Ý0 üÙ/ stores_cal� Ye.��. &űZ� with checkoption u/ ßx��. stores_cal30_check- �= ciz<^ 6��Ö� ù �? stores_cal$ stores_cal30_check� �, SX$ kª2O L§���. "CA" �Ð� state 2/ ß<^ "Net 30" �Ð� payterms2/ ß� �? <,���.

create view stores_cal30_checkas select * from stores_calwhere payterms = "Net 30"with check option

�� • � ��/ ,O2O B² ÎÄ�ÞZ� �- 01� v wfÌ Sñ U�V�� 01� ÷x��.

170

4A 9B: create table – create view

• sp_rename/ 012O � �[/  ¡� wx��.

• �- �= ¾�� � Adaptive Server� �7 öv ��z�MN ���Q�E Åv w�f, �7 ÷àEÖ ���f, ��� 6��Ö �@� ��� �8� õö/ �í2f ��f-Ý0.��. � Ý0 �&v �Í� ¡å ) ÎDfv ^T>��. Ý0 �C24 create view� �- Sñ U�V�� d5Z� " ³"D*��.

• � �� &¯� �1? Transact-SQL User's Guide- ��2�D�.

 � #� �

• "� ���Q�EÌ �- Í�� wx��.

• �v ��2� _ � 1024g- 6$� ÷x��.

• =D U�V �- Í�� � ÷x��.

• � Ö�<- Í�2<^ §iE- ��� ÷x��.

• � w� text^ image _� readtext ·� writetext- 01� ÷x��.

• �- A�2� select 7 order by^ compute u, ìý� into ·�union ÑÕ&- ��� ÷x��.

• create view 7? p+ 7:� �� SQL 7$ �Ú 01� ÷x��.

��! create view �@� if...else V¹ ·� while �G �� �Í24 Adaptive Server� � �]� �§f O,- 8A2S �� �� Eì@- Í�.��. �v �9 £�� ¡å )v�Í� wZm� l? �[� �v ���Q�E ÷�fL§.��.

• create view 7 �y   - 01� ÷x��.

declare @p intselect @p = 2create view v2asselect * from t1 where c1 > @p

�J© 24 "Local or global variables not allowed in view definition"�äÓ ^T^� ) ÎDf 7351� !D���.

171

create view

  �.

• _/ �v2<^ R�2O �� Sñ U�V ��-  ¡� ¡å �- R�2Ó �D A�2f �Z4 � _? select * u/ 012O A�� � ^T^f �x��. %!� �- ¨y Í�`/ � =-zÓ L����.

• R�� U�V(·� �) �v Be� ¡å Adaptive Server��- 0123Ó D¬� � ) ÎDf- Í�.��. l? �[$ Eì@- vA U�V(·� �)/ Í�2O R�� / �4 �� �D 01� w© ���.

• �A�2O Adaptive Serverv Be� �- =-� w¬¹ 24Be� �� �- �A�2f �Ó �- �A�� wx��.

s5 t� �� �'

• delete 7? �� U�V � 31zf �x��.

• Sñ U�V�^ �� MN not null _� � �/ ci2� ���z wf �Z4 insert 7? 31zf �x��. (AdaptiveServer� Sñ U�V ·� � not null _ �� 2/ �C� ÷x��.)

• ¦Õ� _/ ��2� �- �= �/ ci� ÷x��.

• insert 7? distinct ·� with check option/ 012O Í�� �§� 31zf �x��.

• update 7? �§ � with check option 31���. � �Y� U�V� _/ ��2� !"#� ={ _� where u ^T^4 6��Ö �&v �Í.��.

• �§ �- �= �/ ci2<^ 6��Ö� ¡å ±1� MN_? d+� Sñ U�V e.��.

• distinct u/ 012O A�� �- 6��Ö2<^ � ci� ÷x��.

• ��� 6��Ö 7? ¦Õ� �� _/  ¡� ÷ZW s¦- ��2� �-  ¡� ÷x��.

IDENTITY � � s

• column_name = identity(precision) �7/ 012O � � IDENTITY _/ �v� ÷x��.

172

4A 9B: create table – create view

• �D± 2/ IDENTITY _ ci234 U�V ¼�&, ���Q�E ¼�&^ DEF ��&� ci2� �- �2� �é�ä _� Sñ U�V �= set identity_insert table_name on/ 01=> .��.

group by B � s

• B²Y� ��� �- Í�� ¡å� s¦ � (Aggregatefunction)� group by u/ 01� � ½�2�D�. Transact-SQLL�/ 0124 group by u ^T^f �� _ �[/ fA� wx��. group by u ÷� _ �[/ fA24 AdaptiveServer� _ �� &¯� ��� �/ return.��. '- t� ¾�� �2� B� �? ���§ MN �(18�) �= ��/ return.��.

select title_id, type, sum(total_sales)from titlesgroup by type

� ¾�v ù �� �= � �/ return� ¡å(6 �)

select type, sum(total_sales)from titlesgroup by type

group by �� &¯� �1? "282 ��� group by � having�"/ ��2�D�.

distinct ¡ )  

• distinct u? �- �m �� ÷� ���Q�E Å� A�.��. MN _ 2� �� � w� l? � 2$ +:2� ¡å �? �� �� �m�äÓ A����. NULL 2? �� NULL 2� �mZ� \½���.

� _� 2� s./ ¾�24 �m �Z� ^T¾ wx��._� 2� s./ �,24 K � +, l? 2� t w 8$� �m �/ ��� Z� ^T>��. 2fÌ �� Sñ �? O�k Ó�.��. Adaptive Server� ̈ yZ�(¦�$ �,/ 2S �) � ܯE� � MN �� �� �� �%z¬¹�� A� �= distinct �� 0¢/ ±1.��.

� A�� select 7� s¦ � (Aggregate Function)^ groupby u� +,� H �Y distinct- fA2O �m �/ �<� wx��. '- t4 �y$ lx��.

select distinct count(distinct title_id), pricefrom titles

173

create view

• distinct� í�� ={ �Ì ±1zW distinct �� ��� ��� ={zf �x��.

with check option B � s

• with check optionZ� �- Í�� ¡å �- �= ciz<^ 6��Ö� ù �? �� �, SX øé> .��.

• with check optionZ� �- Í�� ¡å "Sñ" �� ��� MN �� ={ Ý0 üÙ øé> .��. �Í� �- �= cizÈ<^ 6��Ö� ù �? Sñ �- �= ê w> .��.

 � #� D' {(

• �v Be� U�V�^ �� BÓ�- áZ34 DEF G�DH sp_depends- Æ�.��.

• syscomments H�� �� àEÖ- !D234 �g  � ��[/ 012O DEF G�DH sp_helptext- Æ�.��.

56

7� create view ��? Á�Ö� ���Q�E ¼�&© wZW ���Q�E ¼�&� � ��/ �� 01&© #¬� wx��.

  vZ � �j� #� 7� �- Í�� � Adaptive Server� U�V�^ �¨� �v ��2� Å- Ý0� ��/ Ìtf �x��. �ä� ={ ŠܯE2f F2oä¬ �- �C±Z� Í�� wx��. ·� MN �� Ý0� 01&v �- U�� ��Í.��.

  12 � �j� #� 7� �- U�� � Å �� �� Ý0��� MN ��� Å- l? 01&v ¼�� §f� O, �ä Päs��.

• �� Å- l? 01&v ¼�2f �? ¡å U�&� Åbc ܯE- ,O=> .��. '- t, U�&v ܯE� ÷� U�V� �v 2^� �,/ �24 �, �7�&v �Í.��.

�# $% "# ��

SQL92 +£ (� >* � �d9 distinct ��� *+V select | Q² "column_heading =column_name"9 *+# Transact-SQL ÎÍ.��.

174

4A 9B: create table – create view

• �� ={ Å- l? 01&v ¼�2Ó w� ¡å j%� õö� ±1���. U�&v bc ܯE� ÷fÌ U�&��� ŠܯE2� ^D± ��/ &dZ� ß© ���. 01&© U�V �� bc ܯE- ,O2f �é¬ ��� ��� ܯE ��/ ,O� wx��. �ä� �� B² ÎÄ�Þ� � wx��. '- t, � U�&� U�V�jA �$ _Ì Ü¯E� wx��. ^D± �� õö �� &¯� �1? ��� �� ��� ��z wx��.

89 �� – create schema, drop view, update

��� ���� – sp_depends, sp_help, sp_helptext, sp_rename

175

create view

176

5 ���� ��: dbcc – delete statistics

dbcc�� ���Q�E +�� Ý0S(dbcc)� ���Q�E� /�±, °�

± +��/ L§2Ó �¦� ¦� R m� S�/ �C.��.

�� dbcc checkalloc [(database_name [, fix | nofix])]

dbcc checkcatalog [(database_name)]

dbcc checkdb [(database_name [, skip_ncindex])]

dbcc checkstorage [(database_name)]

dbcc checktable({table_name|table_id }[, skip_ncindex])

dbcc checkverify [(database_name)]

dbcc complete_xact (xid, {"commit" | "rollback"})

dbcc forget_xact (xid)

dbcc dbrepair (database_name, dropdb)

dbcc engine( {offline , [enginenum] | "online" })

dbcc fix_text ({table_name | table_id})

dbcc indexalloc ({table_name | table_id}, index_id[, {full | optimized | fast | null}[, fix | nofix]])

dbcc rebuild_text (table [, column [, text_page_number]])

dbcc reindex ({table_name | table_id})

dbcc tablealloc ({table_name | table_id}[, {full | optimized | fast | null} [, fix | nofix]])|

dbcc { traceon | traceoff } (flag [, flag ... ])

dbcc tune ( { ascinserts, {0 | 1 } , tablename |cleanup, {0 | 1 } | cpuaffinity, start_cpu {, on| off } | des_greedyalloc, dbid, object_name,

" { on|off }" | deviochar vdevno, "batch_size" | doneinproc { 0 | 1 } |maxwritedes, writes_per_batch } )

177

dbcc

���� checkallocfA� ���Q�E- Ý02O MN h�fv AL2© �{z wZW �{� h�f � 01zf �� h�fv ÷�f L§.��. ���Q�E �[/ �D2f �Z4 checkalloc? "� ���Q�E- Ý02W ¢Y optimized BÓ� üÙ/ 01.��(tablealloc��).

checkalloc? �{ R 01 C\/ S¹.��.

database_nameÝ0� ���Q�E �[i��. ���Q�E �[/ �D2f�Z4 dbcc� "� ���Q�E- 01.��.

fix | nofix �{ )v �ùz4 dbccv �- A�f O,- fA.��.checkalloc� Á�Ö M�� nofixi��. fix üÙ/ 01234 ���Q�E- p+ 01& M�� Ó> .��.

Adaptive Server� h�f �{ �� �1? DEF �� f��- ��2�D�.

checkcatalogDEF U�V \� +��/ Ý0.��. '- t4, syscolumns�MN ��� systypes +:2� ÀÖ�- vf�f, sysobjects�MN U�V$ �v syscolumns 2 ̂�Y� _/ vf�f, syslogs� @fO ÅÂ�§Öv ���f */ L§.��. checkcatalog� · A�� ¯K(Ö- M S¹.��. ���Q�E �[/�D2f �Z4 checkcatalog� "� ���Q�E- Ý0.��.

checkdbfA� ���Q�E� syslogs- ��� ù U�V� checktable$ d+� Ý0- Æ�.��. ���Q�E �[/ �D2f �Z4 checkdb� "� ���Q�E- Ý0.��.

skip_ncindexdbcc checktable ·� dbcc checkdbv 01& U�V� nonclustered§iE- Ý02f �Ó ]s²¬¹ ÌX��. Á�Ö� MN §iE- Ý02¬¹ z wx��.

checkstoragefA� ���Q�E� �{, OAM h�f ÀÖ�, h�f +��, àEÖ 2 _, àEÖ 2 _ �{ R àEÖ _ ÑË- Ý0.��. ùù� dbcc checkstorage 56 8$� dbccdb ���Q�EH����. dbcc checkstorage 01$ dbccdb Í�, �� R BÓ�Í� �� &¯� ��? ��� �� ���- ��2�D�.

178

5A 9B: dbcc – delete statistics

checktablefA� U�V/ Ý02O §iE� ��� h�fv AL2©Ñ8zÈZW §iEv ? � ¶��� Aµz wÓ MN �§�v +��� wZW ù h�f� ��� ABv .{2Ó h�f �G5� ±u�f L§.��. �K ¯K(Öv &Å Á �E w� ¡å syslogs U�V� dbcc checktable/ Æ�24 01z� �K� Q C\� S¹���. '- t4 �y$ lx��.

Checking syslogs The total number of data pages in this table is 1. *** NOTICE: Space used on the log segment is 0.20 Mbytes, 0.13%. *** NOTICE: Space free on the log segment is 153.4 Mbytes, 99.87%.

DBCC execution completed. If dbcc printed error messages, see your System Administrator.

&Å Á �E �K ¯K(Öv ÷� ¡å� �y ÎDfv^T>��.

*** NOTICE: Notification of log space used/free cannot be reported because the log segment is not on its own device.

table_name | table_idÝ0� U�V� �[ ·� Å IDi��.

checkverifyfA� ���Q�E� v� �á Æ�� dbcc checkstorage�8$- L§.��. dbcc checkverify �� &¯� �1? ����� ���- ��2�D�.

complete_xact56/ �2<^ TI(rollback)2O Ö×ØÙ/ b�±Z� C�.��. Adaptive Server� Ð, Ö×ØÙ �A&v Ö×ØÙ��© C�zÈ�f M w¬¹ b�±Z� C�� Ö×ØÙ�� MN AB- master.dbo.systransactions U�V B�.��.

��! Xk� Y�� Ö×ØÙ/ b�±Z� C�24 ÔÕ Ö×ØÙ �Å� 8$v +��� ÷/ wx��. Ö×ØÙ/ b�±Z� ��f é�4 TI(rollback)�f �� DEF ��&�8A? �A Adaptive Server ·� G�Ôú� 8A$ M¶� wx��.

179

dbcc

forget_xactmaster.dbo.systransactions� b�±Z� C�� Ö×ØÙ� Ä� Y�- R�.��. forget_xact� DEF ��&v Ö×ØÙ�b�±Z� C�zÈ�� 0Æ/ �A �kEv M[S- �2<^ Ð, �A&v systransactions� Ä� Y� fåS- 01� ÷� ¡å �1� wx��.

��! AY±§ DTP ³¡�� Ð, Ö×ØÙ �A&v b�±Z� C�� Ö×ØÙ/ Íf� w> 2m� dbcc forget_xact- 01=�� ² ���. X/Open XA-U³ Ö×ØÙ ��&� AdaptiveServer Ö×ØÙ �A �kEv &dZ� systransactions� Ä� Y�- f���.

xidsystransactions.xactname _� Ö×ØÙ �[i��. sp_transactions- 012O ��� xid 2/ fA� ¬ wx��.

dbrepair (database_name, dropdb)æY� ���Q�E- R�.��. drop database �@? æY����Q�E�� Æ�zf �x��.

01&(� �7/ Æ�2� 01& ��)� � dbcc 7� Æ�zR� �§ ���Q�E� 01� ÷x��.

fengineAdaptive Server ÀA/ �Gä§ ·� �ä§Z� ÌX��. enginenum� fAz wf �Z4 dbcc engine(offline)? v� .&v t? ÀA/ �Gä§Z� ÌX��. &¯� �1? ����� ���� 8� "�� G�¯� �P ��"- ��2�D�.

fix_textAdaptive Server� 7& s.� � 7& s.� ��� �� �Ö 7& s.Z�  ¡z4 text 2/ 6K���.��.

�� �Ö 7& s.Z�  ¡24 text ��� �, ��v mn=s��. text 2? · h�f- �f� A¬� ` wZm�Adaptive Server� h�f ¡¦ ¸:� 7&- ¨�� w> .��. KJ© 234 �P� ùù� text h�f �� �v ABv ��.��. DEF ��&^ U�V ¼�&� text ���- ß� ù U�V� dbcc fix_text- Æ�2O ��� � 2/ ¦Õ=> .��. &¯� �1? ��� �� ���- ��2�D�.

180

5A 9B: dbcc – delete statistics

indexalloc fA� §iE- Ý02O MN h�fv AL2© �{z wZW �{� h�f � 01zf �� h�fv ÷�f L§.��. checkalloc� 5? P�Z� ù §iE �= d+� �8� L§/ �C.��.

indexalloc? tablealloc$ @vvf� full, optimized, fast� ¯ ���BÓ�- Í�� wx��. ��/ !D2f �< ̂null/ 012� ¡å Adaptive Server� optimized ��/ 01.��. fix | nofixüÙ? indexalloc�¬ tablealloc�� d+� S�/ .��.

�� BÓ� �� 2(full, optimized, fast ·� null)/ fA� ¡åÌfix ·� nofix- fA� wx��.

table_name | table_id, index_idU�V �[ ·� U�V Å ID(sysobjects� id_)� sysindexes w� ={ §iE� indid- .û i��.

fullMN ��� �{ )- BÓ.��.

optimized§iE� Å �{ D(OAM) h�f !D� �{ h�f- S6� BÓ�- Í�.��. � ìý�� OAM h�f !Dzf�? �{ h�f� ��zf �� |E}Ö(extent)� S¹2f�ZW A� ÷x��. optimized üÙ� Á�Öi��.

fast�{ BÓ�� Í�2f �ZW, ��v zfÌ � |E}Ö(extent)(2521 X )) �{zf �� h�f� 'Ð BÓ�- Í�.��.

fix | nofix � U�V� �ùz� �{ )- indexalloc� A� §f fA.��. MN §iE� Á�Ö� fix�W DEF U�V §iEÌ'бZ� Á�Öv nofixi��. DEF U�V� fix üÙ/ 01234 ���Q�E- (H p+ 01& M�� Ó> .��.

BÓ� �� 2(full, optimized, fast ·� null)/ fA� ¡åÌ fix·� nofix- fA� wx��.

rebuild_text text ·� image ��� �� �, Adaptive Server 12.x �����- ���2<^ Í�.��. � ��� ��- 0124Adaptive Serverv ��� ¾� D =� ܯE R kdS prefetch- Æ�� wx��.

181

dbcc

reindexÐ� P�� dbcc checktable/ Æ�2O 01& U�V w� §iE� �8�/ Ý0.��. U�V �[ ·� U�V ÅID(sysobjects� id _)� �Ú 01� wZW, reindex� { H�§iE �� )- �ù24 ÎDf- §Ë� �y suspect §iE- R�2Ó �Í�.��. Adaptive Server� Aµ ¶�v  ¡zÓ Adaptive Serverv §iE- "�A"Z� !D24 DEF��& ·� U�V ¼�&� í�D dbcc reindex- Æ�=> .��.

dbcc� æY� §iE- �ù24 ={ §iE- R�2Ó ±u�§iE- �Í�.��. U�V� §iEv �9 AzÈ<^U�V §iEv ÷� ¡å dbcc reindex� K §iE- ���2f �Ó �� AB ÎDf- §Ë.��.

U�V æY� ���v w/ Z� �Az� ¡å dbcc reindexv �f���. K� ¡å dbcc checktable/ Æ�2ä� ) ÎDfv 01&© !D���. dbcc reindex� DEF U�V� §iE �Í�/ 312f �x��. Aµ ¶�  ¡ � AdaptiveServerv �D5z4 &d m�� +,�� DEF §iE L§R ���� Æ����.

tablealloc fA� U�V/ Ý02O MN h�fv AL2© �{z wZW �{� h�f � 01zf �� h�fv ÷�f L§.��.� ? checkalloc� 5? P�Z�� ùù� U�V d+� �8� Ý0- �C.��. U�V �[� ̂U�V Å ID(sysobjects� id _)� �Ú 01� wx��. tablealloc !D� '�� ����� ���- ��2�D�.

tablealloc/ 0124 full, optimized, fast� ¯ ��� BÓ�- Í�� wx��. ��/ !D2f �<^ null/ 012� ¡åAdaptive Server� optimized- 01.��.

fullU�V X�� checkalloc$ d*2W MN ��� �{ )- S¹.��.

optimizedU�V� Å �{ D(OAM) h�f !D� �{ h�f- S6� BÓ�- Í�.��. � ? OAM h�f !Dzf �?�{ h�f� ��zf �� |E}Ö(extent)� S¹2f �ZW A� ÷x��. optimized üÙ� Á�Öi��.

182

5A 9B: dbcc – delete statistics

fast�{ BÓ�- Í�2f �ZW ��� zfÌ � |E}Ö(extent) (2521- X )) �{zf� �? h�f� 'Ð BÓ�i��.

fix | nofix � U�V� �ùz� �{ )- tablealloc� A�f fA.��. MN U�V� Á�Ö� fix�W DEF U�VÌ 'бZ� Á�Öv nofixi��. DEF U�V� fix üÙ/ 01234 ���Q�E- (H p+ 01& M�� Ó> .��.

BÓ� �� 2(full, optimized, fast, ·� null)/ fA� ¡åÌ fix·� nofix- fA� wx��.

traceon | traceoff ¾� �±¿ ¬� Ap §Ë- Ôþ.��(flag 2 302, 310 R317). 2 3604 R 3605 Ôþ? �± 8$- ùù 01& ¯Ù$ ) �K� �ä.��. &¯� �1? Performance and TuningGuide� 37� "Tuning with dbcc traceon"/ ��2�D�.

tunej% Æ� Y�- �� �A |ÒK- 01 v�2¬¹ 2<^ 012f �¬¹ .��. ùù� üÙ �� &¯� �1? Performance and Tuning Guide- ��2�D�.

�� 1 pubs2 h�f �{ )v ÷�f Ý0.��.

dbcc checkalloc(pubs2)

�� 2 pubs2� ���Q�E +��/ Ý02Ó dbccdb ���Q�E AB- �C.��.

dbcc checkstorage(pubs2)

�� 3 Adaptive Serverv � U�V �= �±¿� �{ BÓ�-return2fÌ �{ )- A2f� �x��.

dbcc tablealloc(publishers, null, nofix)

Checking salesdetailThe total number of pages in partition 1 is 3.The total number of pages in partition 2 is 1.The total number of pages in partition 3 is 1.The total number of pages in partition 4 is 1.The total number of data pages in this table is 10.Table has 116 data rows.DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role.

183

dbcc

dbcc checktable(salesdetail)

�� 4 Adaptive Serverv titleauthor U�V� indidv 2§ §iE�= �{ BÓ�- return2Ó �{ )v w/ ¡å A.��.

dbcc indexalloc ("pubs..titleauthor", 2, full)

�� 5 blurbs U�V� MN text R image _ �= �, AdaptiveServer 12.x ��� ��- ���2<^ �.��.

dbcc rebuild_text (blurbs)

�� 6 dbcc reindex� titles U�V� 2^ �Y� æY� §iE-èé���.

dbcc reindex(titles)

One or more indexes are corrupt. They will be rebuilt.

�� 7 7& s.�  ¡� �y blurbs �� àEÖ 2/ 6K���.��.

dbcc fix_text(blurbs)

�� 8 "distributedxact1" Ö×ØÙ/ b�±Z� �f.��.

dbcc complete_xact (distributedxact1, "rollback")

�� 9 master.dbo.systransactions� "distributedxact1" Ö×ØÙ�� AB- R�.��.

dbcc forget_xact (distributedxact1)

�� • ���Q�E +�� Ý0S§ dbcc� ���Q�Ev 01 �+�¬ Æ�� wx��. p, dbrepair(database_name, dropdb)üÙ$ dbcc checkalloc üÙ� fix� �A� ¡å� 'Ði��.

• dbcc� ���Q�E Å- Ý024� � Å- lock.��.dbcc- 0124� Æ�Y� 7�- �¼¿2� ­® �� �1? ��� �� ���� dbcc ��/ ��2�D�.

• 01& �[�^ ���Q�E �[/ 012O U�V ·� §iE �[/ ��234 ��� �[ 4 �+!^ 5? �+!- âi��. '- t4 �y$ lx��.

dbcc tablealloc("pubs2.pogo.testtable")

• dbcc reindex� 01& A� Ö×ØÙ �� Æ�� ÷x��.

184

5A 9B: dbcc – delete statistics

• dbcc fix_text� �? � �K �Ä�- Í�� wZW � �Ä�v Ö×ØÙ �K- vu j¦ ¬ wx��. dbcc fix_text�+�� 5? Ö×ØÙ/ �= 6��Öv ��f¬¹ Ìt³ wx��. �ä� � �K C\ �&v �Í2oä¬ ¼À� 56Ì æÆ���. �K C\� � �4 �K- fåÓ �Ò� dbcc fix_text �&v �Í`/ � 6K��� ��ü U�V/ 012O dbcc fix_text- �D D5.��.

• �� �Ö 7& s.Z�  ¡� � text 2� select, readtext·� writetext- 0123Ó 2W dbcc fix_text- Æ�2f �L�4 �@ �&v �Í2W ={ U�V� dbcc fix_text- Æ�2ä� ) ÎDfv !D���. 2fÌ 7& s./  ¡� �y dbcc fix_text- Æ�2f �Ó text �/ R�� � wx��.

• dbcc ��? 8$ �� é�ä ÎDf^ )� �ä���. `ä��Ö G�K¥$ E¡Öv ±u� ) ¨�S- Ý0=> .��.

• U�V� partition� ¡å dbcc checktable? ù partition ��AB- return.��.

• Adaptive Server P� 12.x� 6K���� text R image ���� &dZ� � H� �#Z� 6K���zf .34!. ¾���/ <YDìÓ � ���� prefetch- 01 v�2¬¹ 234 6K���� text R image _ �= rebuild_text ìý�-01=> .��.

56

7� U�V ¼�&Ì dbcc� checktable, fix_text, rebuild_text, reindex ìý�- Æ�� wZW ���Q�E ¼�&Ì checkstorage, checkdb,checkcatalog, checkalloc, indexalloc R tablealloc ìý�- 01� wx��. K�Ó DEF ��&Ì dbrepair, complete_xact, forget_xact ìý�- 01� wZW, DEF ��&Ì dbcc traceon$ dbcc traceoff�@/ 01� wÓ,DEF ��&Ì dbcc engine/ 01� wx��.

89 �� – drop database

��� ���� – sp_configure, sp_helpdb

�# $% "#SQL92 Transact-SQL ÎÍ

185

deallocate cursor

deallocate cursor�� Ä�- ܯE� ÷¬¹ ÌtÓ ={ Ä� Æ�� MN ÎM�

&�/ =�.��.

�� deallocate cursor cursor_name

���� cursor_name�{ =�� �� �[i��.

�[� "authors_crsr"§ Ä�- �{ =�.��.

deallocate cursor authors_crsr

�� • � Ä�v ÷Z4 Adaptive Server� ) ÎDf- return.��.

• Ä� �[/ �� declare cursor 7� +,� 01234 Ä���{/ =�=> .��.

• deallocate cursorv �� G�DH ·� Ö�< fA� ¡å� ÎM� &� 01 é� ;</ 9:f �x��.

• Ä�v §� w<^ _3 w� ¡å ��ä¬ Ä�- deallocate� wx��.

56

7� deallocate cursor ��? Á�Ö� MN 01&© �C���. �ä� %¬� 01 ��� ��2f �x��.

89 �� – close, declare cursor

declare�� 7: ·� G�DH �� �Å   ��$ �[/ ��.��.

��   ��:

declare @variable_name datatype [, @variable_name datatype]...

  �{:

select @variable = {expression | select_statement}[, @variable = {expression | select_statement} ...][from table_list]

�# $% "#SQL92 Transact-SQL ÎÍ

186

5A 9B: dbcc – delete statistics

[where search_conditions][group by group_by_list][having search_conditions][order by order_by_list][compute function_list [by by_list]]

���� @variable_nameí�D @ SU� D5=> 2W #%& �� õö/ X => .��.

datatypeDEF ��� ���<^ 01& A� ��� ��+ wx��.

�� 1   2 �ä   - ��2Ó 7&_/ §Ë.��.

declare @one varchar(18), @two varchar(18) select @one = "this is one", @two = "this is two" if @one = "this is one" print "you got one" if @two = "this is two" print "you got two" else print "nope"

you got oneyou got two

�� 2 titles U�V� Ê �Óvv 20P)- 6$24 "Ouch!"- §Ë.��.

declare @veryhigh money select @veryhigh = max(price) from titles if @veryhigh > $20 print "Ouch!"

�� • select 7/ 012O �Å   2/ fA.��.

• G�DH� �g  � �� .&� 2048i��. �Å   ·� �«   � .&� 01 v�� ÎM� �=�Ì �����. @ SU�   �[/ ^T���.

• �Å   � while �G ·� if...else V¹� I��� &½ 01���. �� G�DH�   � kYU 51, &d 01Z������. �Å   � í�D ��� 7: ·� G�DH �� 01z> .��.

• �Å   2/ �{2� select 7? +í±Z� 2 � g-return.��. g �Y� 2� return� ¡å �   � @fO2Z� �{���.   2/ �{2� select 7? d+� �7� ���- ÝÞ2� �� 01� ÷x��.

187

declare cursor

• print R raiserror �@? �Å   - §&� vh wx��.

• 01&� �«   - Í�� ÷ZW select 7� �«   2/ bc 6��Ö� ÷x��.

56

7� declare ��? Á�Ö� MN 01&© �C���. �ä� %¬� 01 ��� ��2f �x��.

89 �� – print, raiserror, select, while

declare cursor�� �- A�.��.

�� declare cursor_name cursorfor select_statement[for {read only | update [of column_name_list]}]

���� cursor_nameA�z� � �[i��.

select_statementÄ� 8$ set/ A�2� ¾�i��. &¯� �1? select- ��2�D�.

for read onlyÄ� 8$ set/ 6��Ö� ÷¬¹ fA.��.

for updateÄ� 8$ set/ 6��Ö� w¬¹ fA.��.

of column_name_list6��Ö� w¬¹ A�� Ä� 8$ set(select_statementv fA)� _ ̧ ¹i��. Adaptive Server�� Ä�� select_statement_ ¸¹ fAzf �LÓ �ä� 8$ set¬ �ÐzÈfÌselect_statement fA� U�V e2� _/ ��� wx��.

�� 1 authors U�V� õ���é <½2f �� H&v Mt w� authors_crsr Ä� �� 8$ set/ A�.��.

declare authors_crsr cursor

�# $% "#SQL92 Transact-SQL ÎÍ

188

5A 9B: dbcc – delete statistics

for select au_id, au_lname, au_fnamefrom authorswhere state != ’CA’

�� 2 titles U�V� ký�E �±� ��� titles_crsr Ä� �= øS �1 8$ set/ A�.��.

declare titles_crsr cursorfor select title, title_id from titleswhere title_id like "BU%"for read only

�� 3 publishers U�V� MN �� t w� pubs_crsr Ä� �= 6��Ö v�� 8$ set/ A�.��. Ú, ù �«0 ½¼(cityR state _)- 6��Ö� w¬¹ A�.��.

declare pubs_crsr cursorfor select pub_name, city, statefrom publishersfor update of city, state

�� ¢P �

• declare cursor 7? ={ Ä� �� open 7 å�=> .��.

• �� �7/ declare cursor 7$ l? Transact-SQL 7: ��� ÷x��.

• `ä��Ö� declare cursor 7� update u �� 1024g� _/ ��D� wx��.

• cursor_name? í�D ��� Adaptive Server #%&O> .��.

¢P select �

• select_statement� Transact-SQL select 7� �9� �Å �7/ 01� wx��. p, �y �� 0¢� wx��.

• select_statement� í�D from u� w> .��.

• select_statement� compute, for browse ·� into u� tó ÷x��.

• select_statement� holdlock ìý�- 01� wx��.

• select_statement� Transact-SQL �g  �[� ̂Transact-SQL �Å   (�- �Ð� MN Ä� �� ��   ) �� ��v tó wx��. � �[? declare cursor 7� w� G�DH, Ö�<, �7 7: A�� Transact-SQL �g  � �Å   - í�D ��=> .��.

189

declare cursor

declare cursor 7� ��z� �g  � �Å   � Ä�v Cg� �ef ��� 2� tó ��v ÷x��.

• select_statement� Ö�<� 01z� inserted R deleted =D U�V �� ��v tó wx��.

¢P £4

• Ä�� £� O,� K MN �ä A=s��. OS� í�þÄ�v 01z� ÷àEÖ, Ú 01& ¯Ù, �� G�DH ·�Ö�< �,- �.��.

01& ̄ Ù� Ä�� 01&v ={ ̄ Ù/ ô�S �efÌ£�.��. � Ä�� �� 01&v D52� �v ¯Ù�£�2f �x��. 01&v �K�G24 Adaptive Server�� ¯Ù� ÌtA Ä�- �{ =�.��.

declare cursor 7� �� G�DH ·� Ö�<� +,§ ¡å K²� Í�� Ä�� �� G�DH ·� Ö�< í�� K �� G�DH ·� Ö�<- Æ�� í� ±1���. inserted·� deleted U�V� Ö�< �� ��� Ä�� ��� ��G�DH� ܯE� ÷x��. 2fÌ inserted ·� deletedU�V� Ö�< �� ��� Ä�� ={ Ö�< í� �,� OP�Q ( G34!. �� G�DH ·� Ö�<v C�z4 Adaptive Server� �, Í�� Ä�- �{ =�.��.

K8 5-1? Ä�v í� �� �© Æ�z�f BO ���.

190

5A 9B: dbcc – delete statistics

� 5-1: uQ ��8 v8 V� .�

• Ä� �[? ½A í� ��� Ó�=> .��. AdaptiveServer� ÂT= DÌ jA í�� �[ ab/ Íf.��.�� G�DH^ Ö�<� Ä�v 2^Ì Æ�z� ¡å Ä�- 2^� �[Z� A�� wx��. '- t4, �y ��G�DH� K í� � names_crsr Ä�v 2^Ì A�z wS �7 ��� Æ����.

create procedure proc2 @flag intasif @flag > 0 declare names_crsr cursor for select au_fname from authorselse declare names_crsr cursor for select au_lname from authorsreturn

1 -t������

declare cursor c1goexec sp_proc1 2 - proc1������

�������� c1�� ������������

declare cursor c2go�������� trigger1�������

4 -���� ������

��c2���� c3��� !"�#$%&���c1'��� ��������

3 - trigger1 ��

proc1�� c2���

�����(�������

��c1��� ��������

declare cursor c3gotrigger1��������

191

declare cursor

rs set

• Ä� 8$ set �? Æ� SX U�V �� 2/ í;2f �/ ¬ wx��. '- t4 order by u/ 01= ��� Ä�� ¡å� +í±Z� � Ä� 8$ set �� �/ Aµ2S �= �, U�V/ Ìt> .��. Adaptive Server� � �, U�V� � ={2� SX U�V� �/ lock2f �ZW �ä��� `ä��Öv � SX U�V �/ 6��Ö� wx��. � ¡å Ä� 8$ set� `ä��Ö� return� �? SXU�V �$ dS¿zf �x��.

• � �� Ä�� fetch- �= returnz4 Ä� 8$ set� Í����. Ú, Ä� select ¾�v +í select ¾�¨� ¨���� /Î.��. R� �S�ä� � G�¯E� B� Ð� return D\/ �C2W � ¤1 G�K¥� ��� 2f �� �/ ø/ ��v ÷¬¹ ÌX��.

Ä� E�? U�V� unique §iEÌ 01� w�� ��0¢� wx��. 2fÌ Ä�v d+� lock C\ w� ��G�¯Ev Ä� 8$ set� ��2� SX U�V/ �� 6��Ö2f �� ¡å � ��� ��2f �x��. AdaptiveServer�� unique §iE ÷�¬ U�V Ä�- ��� wfÌ d+� lock C\� �)� U�V/ 6��Ö23Ó 24 U�V w� MN Ä�v §���.

�S�, �`� ¢P

• declare cursor- 01= Ä�- A�� � Adaptive Server� Ä�v TU: V��f é�4 W� 1%§f «p.��. Ä�v 6��Ö v�24 Ä� 8$ set �� �/ 6��Ö2<^ R�� wx��. Ì( Ä�v øS �1�ä4 8$ set/ ¡� ÷x��.

• for update ·� for read only u/ 01= Ä�- 6��Ö v��^ øS �1Z� Ô�2© A�.��. Ä�� select_statement �y �7 � 2^v t w� ¡å� Ä�- 6��Ö v�2¬¹ A�� ÷x��.

• distinct üÙ

• group by u

• s¦ � (Aggregate function)

• �ã¾�

• union �;&

• at isolation read uncommitted u

192

5A 9B: dbcc – delete statistics

for update ·� read only u/ Í]24 Adaptive Serverv ={Ä�� 6��Ö v� O,- L§.��.

order by u� select_statement� +,� ��z w� � �� ·� �P �� Ä�- ��24 Adaptive Server� � Ä�- øS �1Z� A�.��. Adaptive Server� ̀ ä��Ö �� Ä�� Æ� �� Ä� 6��Ö- �[© ¨�2m� � ��? ÷s��.

• for update u/ 01= column_name_list- fA2f ���4¾� fA� MN _? 6��Ö v�.��. Adaptive Server� SX U�V/ Eû� � 6��Ö v�� Ä� ��unique §iE 01/ D¬.��. Ä�� ¡å Adaptive Server� IDENTITY _� w� §iEv Ó�2© ��zf �� ¡å¬ Ó�� Z� \½.��.

for update u/ fA2f �Z4 Adaptive Server� unique §iE- �,.��. °Ö fA� U�V _ �� unique §iEv ÷Z4 �� §iE^ U�V E�/ �1� ¬ wx��.2fÌ for update u/ fA`�4 Adaptive Server� SX U�V/ E�2S �= 2^ �Y� _ �= A�� unique §iE- 01=> .��. �)� §iEv ÷Z4 )v return���.

• �,Ô� ¡å for update u� column_name_list� 6��Ö� _Ì Óx��. � U�V unique §iEv 2^S�4 K_/ for update column_name_list Ó/ ��v ÷x��. Adaptive Serverv Ä� E�/ Æ�� � � _/ èx��. 2fÌ � U�V unique §iEv � �Y�4 K _/ for update column_name_list Ó Adaptive Serverv Ä� E�D Ð[© èé� w¬¹ .��.

�J© 24 Adaptive Serverv Ä� E� unique §iE- 01� wZW, �ä� Q�X YZäÓ 2� 6��Ö 7�-­f� wx��. ��� 7�- ­f2� · �� ­®?unique auto_identity index ���Q�E üÙ/ 01= U�V/Ì�� ­®i��. &¯� �1? ��� �� ���- ��2�D�.

193

delete

� 7�� `ä��Öv SX U�V� �� returnz� ¶�- A�2� Ä� 8$ set �� _/ 6��Ö� � �Í.��.'- t4, Adaptive Serverv §iE- 012� SX U�V/ܯE2Ó `ä��Öv §iE ì- 6��Ö24 6��Ö� §iE �? � §iE �� �d� wZW Ä�v � §iE �/ �D ø/ wx��. �� /�±Z�Ì Ä� 8$set/ Ì�� 6��Ö v�� Ä� 8$i��. � Ä� 8$ set? Æ�� � Ä�- �ÍD� SX U�Vi��.

• read only üÙ/ fA24 delete ·� update 7/ 01=� Ä�8$ set/ 6��Ö� ÷x��.

56

7� declare cursor ��? Á�Ö� MN 01&© �C���. �ä�%¬� 01 ��� ��2f �x��.

89 �� – open

delete�� U�V� �/ R�.��.

�� delete [from] [[database.]owner.]{view_name|table_name}[where search_conditions] [plan "abstract plan"]

delete [[database.]owner.]{table_name | view_name} [from [[database.]owner.]{view_name [readpast]|

table_name [readpast] [(index {index_name | table_name }[ prefetch size ][lru|mru])]}

[, [[database.]owner.]{view_name [readpast]|table_name [readpast]

[(index {index_name | table_name }[ prefetch size ][lru|mru])]} ...]

[where search_conditions] ] [plan "abstract plan"]

delete [from] [[database.]owner.]{table_name|view_name}where current of cursor_name

�# $% "# ��

SQL92 +£ (� >* for update D for read only ��# Transact-SQL ÎÍ.��.

194

5A 9B: dbcc – delete statistics

���� from(delete �) �� SQL P�$� U³ 01z� �,± ìý�i��.

view_name | table_name�/ R�� � ·� U�V� �[i��. � � ·� U�V��� ���Q�E w� ¡å� ���Q�E �[/ fA2Ó K ���Q�E � l? �[� �^ U�V� � �Y§ ¡å� ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&�W database� Á�Ö2? "� ���Q�Ei��.

where!X where ui��. &¯� �1? where �/ ��2�D�.

from(table_name ·� view_name �) R�� �/ fA� � where u$ �Ú 01� U�V�^ �- � �Y fA� w© =���.from u/ 0124 � U�V H�� ���- S6� �� U�V� �/ R�� wZm� �� select 7 S�/ �1� wx��.

readpastdelete �@� lock ·� D\ 6$- S��f �Ó U³zf ��lock� z w� h�f^ �/ M ]s²¬¹ fA.��.datapages-locked U�V� ¡å � �@? U³zf �� lock�z w� h�f� MN �/ ]s²Ó, datarows-locked U�V� ¡å� U³zf �� lock� z w� MN �/ ]s���.

index index_nametable_name ܯE 01� §iE- fA.��. �� R�� �� � üÙ/ 01� ÷x��.

prefetch size i/��� © ��� ÃD� ��z� U�V� i/�� ÂS- KB p�� fA.��. ��� ÂS 2? 2, 4, 8, 16i��. �� R�� ¡å� � üÙ/ 01� ÷x��. sp_helpcache� Åv ��� ÃD^ Á�Ö ÃD� ��� ÂS- !D.��.

CIS(Component Integration Services)- 0124 �Ï �Pprefetch ìý�- 01� ÷x��.

195

delete

lru | mruU�V 01� P¤ ªÅ �]/ fA.��. lru� üÈ@�Hv MRU/LRU(�á 0¢/v� �Ò� 0¢) ÑË� ÃD w�U�V/ ø¬¹ Ì�� � 01.��. K�Ó mru� ÃD�P¤- P�Ó U�V� �y P¤� ªÅ2� � 01.��. �� R�� �� � üÙ/ 01� ÷x��.

plan "abstract plan"¾� �±¿ 01� Abstract Plan(AP)/ fA.��. AbstractPlan(AP) �� fA� ¦� �Å ·� +,Ôi��. &¯� �1? Performance and Tuning Guide� 22� "Creating and UsingAbstract Plans"- ��2�D�.

where current of cursor_nameAdaptive Serverv cursor_name� "� Ä� �:� fA� U�V�^ � �/ R�2¬¹ ÌX��.

�� 1 authors U�V� MN �/ R�.��.

delete authors

�� 2 authors U�V� � � ·� O) �/ R�.��.

delete from authorswhere au_lname = "McBadden"

�� 3 titles U�V� Bennet� � Ê �� �/ R�.��.pubs2 ���Q�E� sales U�V S¹� �¸� R�z� / O� Ö�<(deltitle)v ��z wx��. � '�v Æ�z¬¹234 � Ö�<- R�=> .��.

delete titles from titles, authors, titleauthor where authors.au_lname = ’Bennet’ and authors.au_id = titleauthor.au_id and titleauthor.title_id = titles.title_id

�� 4 title_crsr �v "� fA� titles U�V� �/ R�.��.

delete titles where current of title_crsr

�� 5 authors U�V� IDENTITY _� 2� 4§ �/ èé R�.��. IDENTITY _� Æ� �[ �� syb_identity ìý� 01/��2�D�.

delete authorswhere syb_identity = 4

�� 6 lock� �? M ]s²4� authors� �/ R�.��.

delete from authors from authors readpast

196

5A 9B: dbcc – delete statistics

where state = "CA"

�� 7 lock� �? M ]s²4� stores� �/ R�.��.authors lock� �� wZ4 ¾�� �)� �/ V��2Ó lock�=�� �ef �S.��.

delete stores from stores readpast, authorswhere stores.city = authors.city

�� • delete� fA� U�V� �/ R�.��.

• delete 7� �Ó 15g U�V/ ��� wx��.

� �m

• �� U�V �(�� from u� � �Y� U�V/ fA2� ¡å)� update ·� insert� 01? 31zfÌ delete� 01� ÷x��. �� U�V �- �= �/ R�24 O) U�V�  ¡z�� �� 31zf �x��. �� � SX U�VÌ ;</ 9:� insert� update 7? 31���.

• Adaptive Server� � delete� d+� U�V �� g� �� fA/ g� U�V� _É.��. '- t4, pubs2 Æ�z� �y delete� discounts- g� U�V(discounts� pubs2..discounts)� fA.��.

delete discountsfrom pubs2..discounts, pubs2..storeswhere pubs2..discounts.stor_id = pubs2..stores.stor_id

� ¡å � �§� discountsv t wf �Zm� where �]? MN �� �i��. �ä� Adaptive Server� discounts�MN �/ R�.��. 2fÌ �� �b� 8$v é��.�)� 7�- 234 �7 �űZ� U�V fA&v d+=> .��.

• �� �( �]/ �= �� U�V� ��z� U�V��/ R�23Ó 24 Adaptive Server� � R�- 312S � MN �� U�V/ Ý0.��. R�23Ó 2� � ��U�V� foreign ì� 01 �§ Primary ìv w�4 � R�� 31zf �x��.

B�C�P �¤ 2 �

• where u/ 012f �Z4 delete [from] � �D� �[� U�V� ,[ �? R����. ���v k woä¬ drop table�@/ Æ�� �ef � U�V? ¦e £�.��.

197

delete

• truncate table$ � fA� ÷� delete� S�±Z�� d+2fÌ truncate table� o Ð���. delete� � H � �g R�2W �)� Ö×ØÙ/ S¹.��. í4 truncate table? ���h�f �Å- R�2W �/ S¹2f �x��.

delete R truncate table? ��� R Ñ8 §iEv �f� C\/�D �;.��.

• partitioned U�V� truncate table �@/ 01� ÷x��.partitioned U�V� MN �/ R�234 where u ÷� delete�@/ 012<^ truncate table �@/ Æ�2S � � U�V/ unpartition.��.

delete¥ ,¦§z

• ÑË Ö×ØÙ M�� "� 01 �§ Ö×ØÙ� ÷�4 delete7? ̂ D±Z� � Ö×ØÙ/ D5.��. R�- Æ�234commit/ 012Ó  ¡ 0¢/ Æ� _¼234 rollback/ 01.��. '- t4, �y$ lx��.

delete from sales where date < ’01/01/89’if exists (select stor_id from stores where stor_id not in (select stor_id from sales)) rollback transactionelse commit transaction

� 7:� ÑË Ö×ØÙ M�- 012O Ö×ØÙ/ D52Wsales U�V� ¾¿v 1989� 1� 1+ ��§ �/ R�.��. � 7:v Y�$ ��� «� ÀÖ�- M R�24 sales� MN  ¡ 0¢/ TI(rollback)2Ó Ö×ØÙ/ B�.��.KJf �Z4 � R�- �� �y Ö×ØÙ/ B�.��.ÑË M� �� &¯� �1? Transact-SQL User's Guide-��2�D�.

delete ,X�

• fA� U�V� delete �@/ Æ�� � fA� d5/ Æ�2¬¹ Ö�<- A�� wx��.

198

5A 9B: dbcc – delete statistics

delete where current of ��

• Ä� where current of u/ 01.��. where current of u/ 012O �/ R�234 (H declare cursor- 01= Ä�- A�2Ó open 7/ 01= Ä�- _> .��. K �y fetch7/ 2^ �Y 012O R�2Ó& 2� � Ä�- ~x��. � Ä� �[? Transact-SQL �g  ^ �Å   O��² ���. � Ä�� 6��Ö v�� Ä�O> 2W KJf �Z4 Adaptive Serverv )- return.��. Ä� 8$ set/ R�24 K Ä� �/ �¬� SX U�V �¬ ;</ 9q��. Ä�- 01= � H � �Ì R�� wx��.

• Ä�� select 7 �§ u� t w�4 � Ä�v 6��Ö v�2�Ó \½zoä¬ Ä� 8$ set� �/ R�� ÷x��. delete...where current of� fA� table_name ·� view_name? � Ä�- A�2� select 7� { H� from u� fA� �·� U�V�> .��.

• Ä�� 8$ set� � �/ R�24 Ä�� Ä� 8$ set� �y � ¢ 7:���. �y �/ ܯE234 fetch- Æ�.��. R�� �� Ä� 8$ set� @fO ��ä4 � Ä�� �8$ set� @fO � �y 7:���. �y? delete� ;</$� _ Ä�� �:� d5 �� ��i��.

• `ä��Öv �� Ä�- 012<^ Aõ delete- 012O �/ R�2Ó K �� d+� ̀ ä��Öv ¼�� ��_ Ä�� �:- ̂ T��4 ;</ $� g% Ä�� �:� �1 v�� �y � å�2¬¹ ^D±Z� �A���. 2fÌ � ̀ ä��Öv �� ̀ ä��Ö Ä�� "�Ä� �:- ^T�� �/ R�2� ? Æv�.��.

• �§ ÑÕ&� A�2Ó � `ä��Öv ¼�� �� Ä�� "� Ä� �:- ̂ T�� �/ d+� `ä��Öv R�24 Adaptive Serverv delete 7/ 01.��. 2fÌ �J© z4 � �§Z� A�� Ä�v ̂ D±Z� §���.

readpast ��

• readpast üÙ/ 0124 data-only locked U�V� �� 56 �� U³zf �� lock/ V��2f �é¬ delete �@/ A�� wx��.

• datapages-locked U�V� readpast� �� 56� C�, 6��Ö ·� exclusive lock/ B�� MN �/ ]s���.

199

delete

• readpast- fA2� �@? U�V exclusive lock� w� ¡å V��.��.

• readpast üÙ� allpages-locked U�V �= fAz4 readpastüÙ? �D���. �@? U³zf �� lock/ è� ÚD V��.��.

• ¯Ù� isolation level� 3�4 readpast üÙ? ) ÷� �D���. �@? X 3� Æ�zW U³zf �� lock� w� ��^ h�f- M V��.��.

• ¯Ù� Ö×ØÙ isolation level� 0�4 readpast- 012�delete �@? ¡Ó ÎDf- ̂ T�f �x��. datapages-lockedU�V� ¡å readpast üÙ� fA� delete �@? U³zf �� lockZ� lockzf �? MN h�f� �/ A.��.datarows-locked U�V� ¡å� � �@� U³zf ��lockZ� lockzf �? MN � ;</ ���.

• delete �@� � �Y� àEÖ _� w� � ±1zÓ � àEÖ _ � U³zf �� lock/ ß� _� w/ ¡å� readpastlocking� �/ ]s���.

index , prefetch �q lru | mru ��

• index, prefetch, lru | mru üÙ? Adaptive Server üÈ@�Hv ��,/ çÙ��. � üÙ? ½�=� 01=> 2W ¢Y setstatistics io on/ 01= Æ� 9:� ;</ Ý0=> .��.� üÙ 01 �� &¯� �1? Performance and TuningGuide- ��2�D�.

56

7� delete ��? Á�Ö� U�V�^ � ¼�&© wZW �)� ¼�&� �� 01&© � ��/ #¬� wx��.

set ansi_permissionsv on�4 delete 7 ��� ��S é�ä whereu ^T^� MN _ �= í�D select ��� w> .��.Á�Ö� ansi_permissions� offi��.

89 �� – create trigger, drop table, drop trigger, truncate table, where �

�# $% "# ��

SQL92 +£ (� >* from �Q² � �d9 ��A4 *+2� kV ������ ��4 *+2� ��A �� ,z ��# Transact-SQL ÎÍ.��.

readpast� Transact-SQL ÎÍ.��.

200

5A 9B: dbcc – delete statistics

delete statistics�� sysstatistics DEF U�V� �¦- R�.��.

�� delete [shared] statistics table_name [(column_name [,column_name]...) ]

���� sharedmaster ���Q�E� sysstatistics� simulated statistics AB-R�.��.

table_nameU�V� MN _ �� �¦- R�.��.

column_namefA� _ �� �¦- R�.��.

�� 1 titles U�V w� MN _ �� �¬, �,¬, kEÔK¥/ R�.��.

delete statistics titles

�� 2 titles U�V w� pub_id _� �¬, �,¬, kEÔK¥/R�.��.

delete statistics titles(pub_id)

�� 3 p+ _§ pub_id^ pubdate �¦� ;</ ½f �Ó pub_id,pubdate �� �¬, �,¬, kEÔK¥Ì R�.��.

delete statistics titles(pub_id, pubdate)

�� • delete statistics� fA� _�^ U�V �� �¦- sysstatisticsU�V� R�2W systabstats U�V� �¦� ;</ ½f�x��.

• drop table �@/ Æ�24 sysstatistics� ={ �� R����. drop index �@/ 0124 sysstatistics w� �? R�zf�x��. �J© 24 ¾� üÈ@�Hv U�V� §iE-��=> 2� �P1�- $f �Z4� §iE �¦- ¦e01� wx��.

��! �¬, �,¬, kEÔK¥? ¾� �±¿ � ±§ �¼i��. delete statistics �@? üÈ@�Hv 012f �� �¦- R�2� ¬�� �C���. ¾� �±¿ ��� �¦-Æ � R�� ¡å� U�V�^ §iE ·� _� updatestatistics- Æ�.��.

201

delete statistics

• optdiag �Ç�È �@Z� simulated statistics- ��24 master..sysstatistics U�V ±? � �� �v���. simulatedstatisticsv o �Y 01zf �Z4 delete shared statistics �@Z� master..sysstatistics� AB- R�� wx��.

56

7� U�V ¼�&� DEF ��&Ì delete statistics �@/ 01� wx��.

89 �� – create index, update

���� – optdiag

�# $% "#SQL92 Transact-SQL ÎÍ

202

6 ���� ��: disk init – disk unmirror

disk init�� Adaptive Server� 01� w� °�± Á �E ·� �+/

ÌX��.

�� disk init name = "device_name" , physname = "physicalname" , [vdevno = virtual_device_number ,]size = number_of_blocks [, vstart = virtual_address

, cntrltype = controller_number ] [, contiguous] [, dsync = { true | false } ]

���� name���Q�E Á �E ·� �+� �[i��. #%& õö/X => 2W 4 �+! ·� 5? �+!� �> .��. ��[? create database� alter database �@� 01���.

physname���Q�E Á �E� �Å 0#/ ^T���. � �[? 4�+! ·� 5? �+!� �> .��.

vdevnovY Á �E HUi��. � HU� Adaptive Server� ������Q�E Á �E � Ó�� �> .��. Á �E HU0? master Á �E- �= '(� HUi��. ��� Á �E HU� 1� 255 0�fÌ v� t? HU� Adaptive Server� ��� ���Q�E Á �E� g B� 2^ ±> .��. '- t 10g Á �E� Á�Ö ��/ ß� AdaptiveServer� ¡å 01 v�� Á �E HU� 1-9i��. AdaptiveServer� 01 v�� �� Á �E g - B34 sp_configure- Æ�� �y number of devices 2/ L§.��.

vY Á �E HU- 8A234 sp_helpdevice BÓ�� device_number _/ L§� � éb 012f �? �y A - 01.��.

203

disk init

size���Q�E L� �{� C\� #i��. ÂS p� fA&� 'k' ·� 'K'(�� �Ö), 'm' ·� 'M'(Îv �Ö), 'g' ·� 'G'(Sv �Ö) * i��. ¢Y p� fA&- ��2� � !x��. p� fA&- ��2f �? ¡å �+!- 012f �é¬ ���. K)^ p� fA&- ��234 �+!- 01=>.��.

vstartAdaptive Serverv ���Q�E Á �E- 012O D5� D5 vY ½¼ ·� �G5i��. vstart� k ·� K(KB), m ·�M(MB), g ·� G(GB) *$ l? �,± p� fA&- 01� wx��. �G5� ÂS� vstart �� 2/ i�2� ­® �ä ����.

• p� ÂS- fA2f �Z4 vstart� D5 ½¼ �= 2Kh�f- 01.��. '- t, vstart = 13/ fA24Adaptive Server� 13 * 2K h�f- D5 ½¼� �G5Z�01.��.

• p� 2/ fA24 vstart� � 2/ D5 ½¼� 01.��.'- t, vstart = "13M"/ fA24 Adaptive Server� D5 ½¼ �G5/ 13MB� 01.��.

vstart� Á�Ö2(+í±Z� ��2� 2)? 0i��. fA� Á �E vstart� size V¹� .� ÷/ ¡å disk init �@ �&v �Í.��. AIX �; Å�� /�± ê� ��&- Æ�2� ¡å vstart� 2v z> .��. Sybase SÛ f�,� fD� ¡åÌ vstart- fA.��.

cntrltypeÁE �ÖT)- fA.��. Á�Ö2? 0i��. Sybase SÛ f�,� fD� ¡åÌ cntrltype/ ��A.��.

dsyncUNIX �; Å� �+/ 01� � ���Q�E Á �E ûSv H� �Å bc ��f�f ·� P¤- �2O ��f�f fA.��. � üÙ? UNIX �; Å� �+/ 6S¿�¡åÌ �9v wZW raw partition� Á �E- 6S¿�¡å� é� ;<� ÷x��. Sñ±Z� MN UNIX �; Å� �+? dsyncv true� �A� Y�� 6S¿���.

�� 1 UNIX DEF 5MB� ÁEÂ- 6S¿.��.

204

6A 9B: disk init – disk unmirror

disk init name = "user_disk", physname = "/dev/rxy1a", vdevno = 2, size = 5120

�� 2 UNIX �; Å� �+� 10MB� ÁEÂ- 6S¿.��.Adaptive Server� dsync �A/ 012O Á �E �+/ _Ó �+ ûS� H� �Å� bc ��s��.

disk init name = "user_file", physname = "/usr/u/sybase/data/userfile1.dat", vdevno = 2, size = 5120, dsync = true

�� • master Á �E� �: G�K¥ �= 6S¿zW � Á �E- disk init� 6S¿� ��� ÷x��.

• ÁE 6S¿- �C±Z� C�234 "sybase" 01&� 6S¿2� Á �E �� ±u� �; Å� ��/ ßÓ w> .��.

• ÂS- ,d ¼ � fA� wfÌ ÂS� 2K� v� ve�7 � �8���.

• size �� p� fA&- 012f �� ¡å

• disk init� 2K� vY h�f ÂS- 01.��.

• create database� alter database� ÂS §&� MB p��ÁE C\/ SXZ� .��. � 2? master Á �Ev��� /�± h�f �  ³���.

• ùù� � ���Q�E Á �E �=�� disk init- 01.��. disk initv �� �@� � 2^v master..sysdevices �v���. � ���Q�E Á �Ev &dZ� Á�Ö ���Q�E H� �¼� ¥� zf� �x��. ���Q�E Á �E sp_diskdefault DEF G�DH- 012O Á�Ö Y�- �{.��.

• disk init- 01� �y� ¢Y dump database ·� dump transaction �@/ 012O master ���Q�E- I6.��.�J© 24 masterv æYz¬ çÓ ²�2© m�� wx��. disk init� Á �E- �v2Ó master I6 �&v �Í� ¡å disk reinit- 01� �y Adaptive Server- �f2Ó �D52O  ¡ 0¢/ m�� wx��.

• create database ·� alter database �@� on device_name u/012O ���Q�E Á �E 01& ���Q�E- �{2�D�.

205

disk init

• ^�f ���Q�Ev H�z� Á �E �Ð� �� Á �E ���Q�E Ö×ØÙ �K(syslogs DEF U�V)- 7:2� !? ­®? create database log on L�/ 012� i��. ·� ���Q�E- Í�� � �¼ 2g� Á �E �[/ fA� �y sp_logdevice- Æ�.��. ·� alter database- 012O H� Á �E� ���Q�E- L�� �ysp_logdevice- Æ�.��. log on L�? ÚD �Å �K- %¬� Á �E� �dD*��. sp_logdevice ­®� ¡å Ö×ØÙZd� ��/ C�� �ef DEF �K +,v �Ò ���Q�E Á �E �f���.

• DEF Y w� MN Adaptive Server Á �E(���Q�E� 'G Á �E M) �� BÓ�- B34 DEF G�DH sp_helpdevice- Æ�.��.

• sp_dropdevice- 012O ���Q�E Á �E- �<.��.(H � Á �E w� MN S£ ���Q�E- R�=>.��.

���Q�E Á �E- R�� �y �� �� °�± �[$vY Á �E HU- �C24 disk init- 012O l? �[Z� � Á �E- Ìt wx��. l? °�± �[$ vY Á �E HU- 01234 Adaptive Server- �D5=> .��.

• size 2� ���Q�E Á �E k= s� Ä� disk init �&v �Í� ¡å �� vY Á �E HU- 012<^ disk init- �D Æ�2S � Adaptive Server- �D5.��.

dsync ��

�� ��� ���- H�2� Á �E �= dsync- false� �A2f @�D�. �+� 'Ð� tempdb�W � ? dsyncv false��A� Á �E ²�2© H����.

• dsyncv �A� ¡å ���Q�E Á �E ûS� °�± H��Å� bc ��fW DEF �&v �Í24 AdaptiveServer� Á �E� ���- m�� wx��.

• dsync- �A2f �? ¡å ���Q�E Á �E �� ûSv UNIX �+ DEF �= P¤¿� wx��. UNIX �+ DEF? °�± �Åv éb Azf �? ¡å¬ 6��Öv C�� Z� !D.��. DEF �&v �Í� ¡å °�± �Å� ��� 6��Öv �Í`�f L§� ÷ZW Adaptive Server� ���Q�E m�v Æv�� ¬wx��.

206

6A 9B: disk init – disk unmirror

• dsync� master Á �E �+ ��^ �Az wx��.

• dsync 2? DEF �&v �Í� � Á �E� ���Q�E- m�� ��v ÷/ ¡åÌ �A/ =�.��. '- t,tempdb ���Q�EÌ H�� Á �E �2O dsync� �A/ =�� wx��.

• Adaptive Server� raw partition H�� Á �E �� dsync�A/ �D2W �)� Á �E �� ûS� dsync �A�¦÷� °�± H� �Å� �Í.��.

• dsync �A? Windows NT |}~� 01zf �x��.

• disk reinit� master ���Q�Ev æYz< ̂Á �Ev master� @fO 'G �� �v� ¡å master..sysdevices- ? [©=���.

56

7� disk init ��? Sñ±Z� DEF ��&© wZW #¬� ÷x��. disk init- 01234 master ���Q�E- 01=> .��.

89 �� – alter database, create database, disk refit, disk reinit, dump database, dump transaction, load database, load transaction

��� ���� – sp_diskdefault, sp_dropdevice, sp_helpdevice, sp_logdevice

disk mirror�� Primary Á �E �&v �Í24 ÚD ��� ¼GÖâ 9)

- �.��.

�� disk mirrorname = "device_name",mirror = "physicalname"[ ,writes = { serial | noserial }]

���� name9)ð23� ���Q�E Á �E� �[i��. sysdevicesU�V� name _ S¹z wx��. � �[? 5? �+! ·� 4 �+!� �> .��.

�# $% "#SQL92 Transact-SQL ÎÍ

207

disk mirror

mirrorsecondary Á �E� �A� ���Q�E 9) Á �E� �Å ¡� �[i��. �� 5? �+! ·� 4 �+!� �> .��. secondary Á �Ev �+§ ¡å physicalname? AdaptiveServerv Í�� �+/ Ô�2© �%2� ¡� fA�> .��. S£ �+�4 ² ���.

writes={ Á �E Ñe ûS�f O,- �,� w© =���. Á�Ö �A� ¡å(serial) secondary Á �E ûS- D52S� Primary database Á �E ûSv (H ô>��. PrimaryR secondary Á �Et� �� �� °�± Á �E w� ¡å Ñe ûS� ��� �A ¡å¬ ÁE � �¼ � g� ;</ $f �¬¹ =���.

disk mirror name = "user_disk", mirror = "/server/data/mirror.dat"

mirror.dat �+ ���Q�E Á �E1 ¼GÖâ 9)§ user_disk- Í�.��.

�� • ÁE 9)ð? 01& ���Q�E Á �E, master ���Q�E Á �E ·� 01& ���Q�E Ö×ØÙ �K 01� ���Q�E Á �E- �� ¼GÖâ 9)- Í�.��. ���Q�E Á �E �&v �Í� ¡å 9)v �- ÚD ��.��.

ÁE 9)ð? ���Q�E� A� �§ Zd ;</ ½f �x��. SQL Server- B�2f �é¬ ���Q�E Á �E- 9) R 9) =�� wx��.

• disk mirror- 01� �y� ¢Y dump database �@/ 012O master ���Q�E- I6.��. �J© 24 masterv æYz¬ çÓ ²�2© m�� wx��.

• 9)� Á �E øS ·� ûSv �C2f F24 AdaptiveServer� �F� Á �E- 9) =�2Ó ) ÎDf- ��.��. Adaptive Server� 9) =� Y�� Æ����. DEF ��&� disk remirror �@/ 012O 9)ð/ �D5=> .��.

• master Á �E, ���- H�2� Á �E, Ö×ØÙ �K- H�2� Á �E- 9)� � wfÌ 'G Á �E�9)� ÷x��.

• Á �E� 9)zfÌ ���Q�E� 9)zf �x��.

208

6A 9B: disk init – disk unmirror

• 2^� Á �E� � Á �E� 9)� 2^� /�± Á �E- ��.��. Adaptive Server� sysdevices U�V� mirrorname_ 9) Á �E� °�± �[/ H�.��. �� sysdevices %¬� ¢¸/ ��2f �ZW disk init� 6S¿zf �é>.��.

• kdS i/�� 01/ �f234 kdS i/��� v�� Á �E- kdS i/��� v�� �� Á �E� ¢Y 9)ð.��. �,Ô� ¡å �� raw Á �E- raw Á �E�,�; Å� �+/ �; Å� �+� 9)ð2� / �9.��.

�; Å�v �+ �� kdS i/��/ �2f F24 rawÁ �E- +í �+ 9)ð� � ) ÎDfv !D���.+í �+/ raw Á �E� 9)ð=¬ zfÌ kdS i/��/ 012f �x��.

• MN Á�Ö ���Q�E Á �E- 9)ð2O create ·�alter database �@� Á�Ö ¸¹ w� ���Q�E Á �E ;</ 9:� ¡å¬ BU$/ w¬¹ .��.

• oÒ �Hk BU234 Ö×ØÙ �K 01z� ���Q�E Á �E- 9)ð.��.

• 01& ���Q�E Ö×ØÙ �K� ¢Y %¬� ���Q�E Á �E B�.��. ̂ �f ���Q�Ev H�� Á �E �Ð� �� Á �E ���Q�E Ö×ØÙ �K(Ú,syslogs DEF U�V)- B�234 ���Q�E- Í�� ����Q�E Á �E� �K Á �E� �[/ fA.��.·� alter database- 012O H� Á �E ���Q�E- L�� �y sp_logdevice- Æ�.��.

• master ���Q�E1 ���Q�E Á �E- 9)ð2�¡å dataserver �Ç�È G�K¥Z� Adaptive Server- �D5� � -r üÙ R UNIX1 9) �[/ 01� wx��. � u�- ={ �P1 RUN_servername �+ �v2O startserver�Ç�È G�K¥ � AB- M3 ���. '- t master.datä� master Á �E� � Á �E� 9)§ mirror.dat- D5.��.

dataserver -dmaster.dat -rmirror.dat

&¯� �1? ���� ���� dataserver R startserver- ��2�D�.

• �{zf �? C\(Á �E +,- �{� w� create database� alter database 7� �v C\)/ vfÓ w� ���Q�E Á �E- 9)ð2� ¡å disk mirror� disk mirror �@� ��� D�� é:, �{� D� �{ 9)ð/ D5.��.

209

disk refit

• DEF Y w� MN Adaptive Server Á �E(01& ���Q�E Á �E, � Á �E� 9), 'G Á �E) �� BÓ�- ��234 DEF G�DH sp_helpdevice- Æ�.��.

56

7� disk mirror ��? Sñ±Z� DEF ��&© wZW #¬� ÷x��. disk mirror- 01234 master ���Q�E- 01=>.��.

89 �� – alter database, create database, disk init, disk refit, disk reinit, disk remirror, disk unmirror, dump database, dump transaction, load database, load transaction

��� ���� – sp_diskdefault, sp_helpdevice, sp_logdevice

���� – dataserver, startserver

disk refit�� sysdevices ��� AB� master ���Q�E� sysusages R

sysdatabases DEF U�V/ ���.��.

�� disk refit

disk refit

�� • Adaptive Server� disk refitv DEF U�V/ ���� � &dZ� B����.

• disk reinit �y master ���Q�E- m�2S �� G�DH� +,�� disk refit- 01.��. &¯� �1? ��� �� ���- ��2�D�.

56

7� disk refit ��? Sñ±Z� DEF ��&© wZW #¬� ÷x��. master ���Q�E � w> disk refit- 01� wx��.

89 �� – disk init, disk reinit

��� ���� – sp_addumpdevice, sp_helpdevice

�# $% "#SQL92 Transact-SQL ÎÍ

�# $% "#SQL92 Transact-SQL ÎÍ

210

6A 9B: disk init – disk unmirror

disk reinit�� master ���Q�E� sysdevices DEF U�V/ ���.��.

master ���Q�E- m�2� G�DH� +,�� disk reinit-01.��.

�� disk reinit name = "device_name", physname = "physicalname" , [vdevno = virtual_device_number ,]size = number_of_blocks [, vstart = virtual_address

, cntrltype = controller_number][, dsync = { true | false } ]

���� name���Q�E Á �E �[i��. #%& õö/ X => 2W 4 �+! ·� 5? �+!� �> .��. � �[? createdatabase� alter database �@� 01���.

physname���Q�E Á �E �[i��. °�± �[? �+! ·�4 �+!� �> .��.

vdevnovY Á �E HUi��. Adaptive Server� 012� Á �E �� Ó�� HUO> .��. Á �E HU 0? master ���Q�E Á �E '(� HUi��. ��� HU� 1�255 0��fÌ v� t? HU� DEF� ��� ���Q�E Á �E� g B� 5é> .��. Á�Ö� 50g Á �E� �Az wx��.

size���Q�E L� �{� C\� #i��. ÂS p� fA&� 'k' ·� 'K'(�� �Ö), 'm' ·� 'M'(Îv �Ö), 'g' ·� 'G'(Sv �Ö) * i��. ¢Y p� fA&- ��2� � !x��. p� fA&- ��2f �? ¡å �+!- 012f �é¬ ���. K)^ p� fA&- ��234 �+!- 01=>.��.

211

disk reinit

vstartAdaptive Serverv ���Q�E Á �E- 012O D5� D5 vY ½¼ ·� �G5i��. vstart� k ·� K(KB), m ·�M(MB), g ·� G(GB) *$ l? �,± p� fA&- 01� wx��. �G5� ÂS� vstart �� 2/ i�2� ­® �ä ����.

• p� ÂS- fA2f �Z4 vstart� D5 ½¼ �= 2Kh�f- 01.��. '- t, vstart = 13/ fA24Adaptive Server� 13 * 2K h�f- D5 ½¼� �G5Z�01.��.

• p� 2/ fA24 vstart� � 2/ D5 ½¼� 01.��.'- t, vstart = "13M"/ fA24 Adaptive Server� D5 ½¼ �G5/ 13MB� 01.��.

vstart� Á�Ö2(+í±Z� ��2� 2)? 0i��. fA� Á �E� vstart� size V¹� .� ÷� ¡å disk init �@ �&v �Í.��. AIX �; Å�� /�± ê� ��&- Æ�2� ¡å vstart� 2v z> .��. Sybase SÛ f�,� fD� ¡åÌ vstart- fA.��.

cntrltypeÁE �ÖT)- fA.��. Á�Ö2? 0i��. Sybase SÛ f�,� fD� ¡åÌ ��A.��.

dsyncUNIX �; Å� �+/ 01� � ���Q�E Á �E ûSv H� �Å bc ��f�f ·� P¤- �2O ��f�f fA.��. � üÙ? UNIX �; Å� �+/ 6S¿�¡åÌ �9v wZW raw partition� Á �E- 6S¿�¡å� é� ;<� ÷x��. Sñ±Z� MN UNIX �; Å� �+? dsyncv true� �A� Y�� 6S¿���.

UNIX �; Å� �+� 10MB� ÁEÂ- 6S¿.��. AdaptiveServer� dsync �A/ 012O Á �E �+/ _Ó �+ ûS� H� �Å� bc ��s��.

disk reinit name = "user_file", physname = "/usr/u/sybase/data/userfile1.dat", vdevno = 2, size = 5120, dsync = true

�� • disk reinit� Master ���Q�Ev æYz<^ Á �Ev master� @fO 'G �� �v� ¡å master..sysdevices- ? [©=���.

212

6A 9B: disk init – disk unmirror

• disk reinit� disk init� �02fÌ ���Q�E Á �E- 6S¿2f� �x��.

• size- ,d ¼ � fA� wfÌ ÂS� 2K� v� ve�7 � �8.��.

• size �� p� fA&- 012f �� ¡å disk reinit� 2K�vY h�f ÂS- 01.��.

• master ���Q�E m� �� &¯� �1? ��� �� ���- ��2�D�.

dsync ��

�� ��� ���- H�2� Á �E �= dsync- false� �A2f @�D�. �+� 'Ð� tempdb�W � ? dsyncv false��A� Á �E ²�2© H����.

• dsyncv �A� ¡å ���Q�E Á �E ûS� °�± H� �Å� bc ��fW DEF �&v �Í24 AdaptiveServer� Á �E� ���- m�� wx��.

• dsync- �A2f �? ¡å ���Q�E Á �E �� ûSv UNIX �+ DEF �= P¤¿� wx��. UNIX �+ DEF? °�± �Åv éb Azf �? ¡å¬ 6��Öv C�� Z� !D.��. DEF �&v �Í� ¡å °�± �Å� ��� 6��Öv �Í`�f L§� ÷ZW Adaptive Server� ���Q�E- m�� ÷x��.

• dsync� master Á �E �+ ��^ �Az wx��.

• dsync 2? DEF �&v �Í� � Á �E� ���Q�E- m�� ��v ÷/ ¡åÌ =�z> .��. '- t, tempdb ���Q�EÌ H�� Á �E �2O dsync��A/ =�� wx��.

• Adaptive Server� raw partition H�� Á �E �� dsync�A/ �D2W �)� Á �E �� ûS� dsync �A�¦÷� °�± H� �Å� �Í.��.

• dsync �A? Windows NT |}~� 01zf �x��.

• disk reinit� master ���Q�Ev æYz< ̂Á �Ev master� @fO 'G �� �v� ¡å master..sysdevices- ? [©=���.

213

disk remirror

56

7� disk reinit ��? Sñ±Z� DEF ��&© wZW #¬� ÷x��. disk reinit- 01234 master ���Q�E- 01=> .��.

89 �� – alter database, create database, dbcc, disk init, disk refit

��� ���� – sp_addumpdevice, sp_helpdevice

disk remirror�� 9)� Á �E� �&� §= �fz<^ ·� disk unmirror �@

�= +D±Z� 5d� �f� ¡å ÁE 9)ð/ �D5.��.

�� disk remirrorname = "device_name"

���� name�9)ð23� ���Q�E Á �E� �[i��. sysdevicesU�V� name _ S¹z wx��. � �[? 5? �+! ·� 4 �+!� �> .��.

���Q�E Á �E user_disk� ¼GÖâ 9)ð/ �D D5.��.

disk remirror name = "user_disk"

�� • ÁE 9)ð? 01& ���Q�E Á �E, master ���Q�E Á �E ·� 01& ���Q�E Ö×ØÙ �K 01� ���Q�E Á �E- �� ¼GÖâ 9)- Í�.��. ���Q�E Á �E �&v �Í� ¡å 9)v �- ÚD ��.��.

9)ð� Á �E� �&� §= �fz<^ disk unmirror �@�mode = retain üÙZ� §= +D±Z� 5d� �f� ��disk remirror �@/ 012O 9)ð/ ��A� wx��.disk remirror �@? B�� ÁEÂ� ���- 9)� m0.��.

• disk remirror- 01� �y� dump database �@/ 012Omaster ���Q�E- I62� � ��.��. �J© 24masterv æYz¬ çÓ ²�2© m�� wx��.

�# $% "#SQL92 Transact-SQL ÎÍ

214

6A 9B: disk init – disk unmirror

• mode = remove üÙZ� §= 9)ð� ;�±Z� 5d� �f� ¡å� disk remirror- 012S � 9)- ��2Ó w��; Å� �+/ R�=> .��.

• ���Q�Ev é: ���Q�E Á �Ev 9)���.

• Adaptive Server- B�2f �Ó ���Q�E Á �E- 9), �9)ð, 9) =�� wx��. ÁE 9)ð? ���Q�E� A� �§ Zd ;</ ½f �x��.

• 9)� Á �E øS ·� ûSv Æë� ¡å Adaptive Server� �F� Á �E- 9) =�2Ó ) ÎDf- ��.��.Adaptive Server� 9) =� Y�� Æ����. 9)ð/ �D D5234 DEF ��&� disk remirror- 01=> .��.

• 01& ���Q�E Á �E- 9)ð2� Ð %¬� ���Q�E Á �E ¢Y 01& ���Q�E Ö×ØÙ �K- B�.��. ·� Ö×ØÙ �K 01z� ���Q�EÁ �E� o t? X� BU- �= 9)� wx��. ^�f ���Q�Ev H�� Á �E �Ð� �� Á �E���Q�E Ö×ØÙ �K(Ú syslogs DEF U�V)- B�234 ���Q�E- Ìt � ���Q�E Á �E� �KÁ �E� �[/ fA.��. ·� H� Á �E� alterdatabase� �y sp_logdevice- Æ�.��.

• master ���Q�E1 ���Q�E Á �E- 9)ð2� ¡å dataserver �Ç�È G�K¥Z� Adaptive Server- �D5� � -r üÙ R UNIX1 9) �[/ 01� wx��. � üÙ/ ={ �P1 RUN_servername �+ �v2O startserver�Ç�È G�K¥ � AB- M3 ���. '- t4 �y$lx��.

dataserver -dmaster.dat -rmirror.dat

master.datä� master Á �E R � Á �E� 9)§ mirror.dat- D5.��. &¯� �1? ={ |}~ �� ���� ��#$� dataserver R startserver- ��2�D�.

• DEF Y w� MN Adaptive Server Á �E(01& ���Q�E Á �E, �t Á �Et� 9), 'G Á �E) �� S¹/ ��234 DEF G�DH sp_helpdevice- Æ�2�D�.

56

�# $% "#SQL92 Transact-SQL ÎÍ

215

disk unmirror

7� disk remirror ��? Sñ±Z� DEF ��&© wZW #¬� ÷x��. disk remirror- 01234 master ���Q�E- 01=> .��.

89 �� – alter database, create database, disk init, disk mirror, disk refit, disk reinit, disk unmirror, dump database, dump transaction, load database, load transaction

��� ���� – sp_diskdefault, sp_helpdevice, sp_logdevice

���� – dataserver, startserver

disk unmirror�� disk mirror �@Z� 6S¿� ÁE 9)ð/ +D �p2O 2�

â- �f B 2<^ 2�â Á �E- ªÅ.��.

�� disk unmirror name = "device_name" [ ,side = { "primary" | secondary }] [ ,mode = { retain | remove }]

���� name9)ð/ =�23� ���Q�E Á �E� �[i��. ��[? 5? �+! ·� 4 �+!� �> .��.

sidePrimary Á �E ·� Secondary Á �E(9))� 5d/ �f�f O,- fA.��. Sñ±Z� B�(secondary) Á �Ev9) =�z wx��.

216

6A 9B: disk init – disk unmirror

mode9) =�v =D±(retain)§f ;�±(remove)§f 8A.��.Sñ±Z� 9) =�� =D Y�� �Az wx��.

^� d+� ��Z� ���Q�E Á �E- �9)ð234 retain/ fA.��. � üÙ/ �,24 Primary Á �E�&v �Í� ¡å �y$ l� �Í2� +t/ �k� wx��.

• i/��? 9) =�zf .\ Á �EÌ ;</ ���.

• sysdevices� status _? 9)ð� kZ�¿��� / �9.��.

remove� 9) ·� Á �E�� MN sysdevices ��- R�.��.

• status _? 9)ð S�� �D��� �9i��.

• kZ�¿z� Á �Ev Primary Á �E§ ¡å phyname_? mirrorname _� secondary Á �E� �[Z� �Å���.

• mirrorname _? NULL� �A���.

�� 1 user_disk ���Q�E Á �E1 ¼GÖâ 9)ð/ +D �p.��.

disk unmirrorname = "user_disk"

�� 2 B�(secondary) ñ w� user_disk ���Q�E Á �E1 ¼GÖâ 9)ð/ +D �p.��.

disk unmirror name = "user_disk", side = secondary

�� 3 user_disk ���Q�E Á �E1 ¼GÖâ 9)ð/ +D�pDìÓ 9) Á �E �� MN Á �E ��- R�.��.

disk unmirror name = "user_disk", mode = remove

�� • ÁE 9)ð? 01& ���Q�E Á �E, master ���Q�E Á �E ·� 01& ���Q�E Ö×ØÙ �K 01� ���Q�E Á �E- �� ¼GÖâ 9)- Í�.��. ���Q�E Á �E �&v �Í� ¡å 9)v �- ÚD ��.��.

217

disk unmirror

disk unmirror� �ñ ���Q�E Á �E� 9) � 2^- +D±Z� ·� ;�±Z� 5d �fDìf �7 AdaptiveServer�� ={ Á �E- o �Y øÓ � ÷x��. ·� ��� �+/ �; Å�� R�� ¬ ÷x��.

• ÁE 9) =�� master ���Q�E� sysdevices U�V/ ¡.��. disk unmirror- 01� �y� ¢Y dump database�@/ 012O master ���Q�E- I62� � ��.��. �J© 24 masterv æYz¬ çÓ ²�2© m�� wx��.

• ���Q�E Á �E- 012� �¬ �- 9) =�� wx��.

• dump database, load database, load transaction� A� �§ d²� MN ���Q�E Á �E- 9) =�� ÷x��.Adaptive Server� 'G ·� �Kv C�� �ef 'G ·� ��- �p�f ·� disk unmirror- ÑS�f �� ÎDf- !D.��.

• dump transaction� A� �§ d²� ��ÖQ�E� �K Á �E- 9) =�� ÷x��. Adaptive Server� 'GvC�� �ef 'G- �p�f ·� disk unmirror- ÑS�f �� ÎDf- !D.��.

�� �K Á �Ev 9) =�� ¡å dump transaction with truncate_only� dump transaction with no_log� ;</ $f �x��.

• MN Á�Ö ���Q�E Á �E- 9)2O create ·� alterdatabase �@Z� §= Á�Ö ¸¹� ���Q�E Á �Ev ;</ $? ¡å¬ BU$¬¹ => .��.

• 9)� Á �E �� øS ·� ûSv Æë� ¡å AdaptiveServer� &dZ� �F� Á �E- 9) =�2Ó ) ÎDf- ��.��. Adaptive Server� 9) =� Y�� Æ����. DEF ��&� disk remirror �@/ 012O 9)ð/ �D5=> .��.

• DEF Y w� MN Adaptive Server Á �E(01& ���Q�E Á �E, � Á �E� 9), 'G Á �E) �� BÓ�- B34 DEF G�DH sp_helpdevice- Æ�.��.

218

6A 9B: disk init – disk unmirror

• disk remirror �@� mode = retain üÙZ� §= +D±Z� 5d� �p� ¡å� disk remirror- 012O 9)ð/ �D �A.��. mode = remove üÙZ� §= 9)ð� ;�±Z� 5d� �f� ¡å� disk remirror- 012S � 9)v ����; Å� �+/ R�=> .��.

56

7� disk unmirror ��? Sñ±Z� DEF ��&© wZW #¬� ÷x��. disk unmirror- 01234 master ���Q�E- 01=> .��.

89 �� – alter database, create database, disk init, disk mirror, disk refit, disk reinit, disk remirror, dump database, dump transaction, load database, load transaction

��� ���� – sp_diskdefault, sp_helpdevice, sp_logdevice

���� – dataserver, startserver

�# $% "#SQL92 Transact-SQL ÎÍ

219

disk unmirror

220

7 ���� ��: drop database – drop view

drop database�� Adaptive Server� ���Q�E- 2^ �Y R�.��.

�� drop database database_name [, database_name]...

���� database_nameR�� ���Q�E� �[i��. sp_helpdb- 012O ���Q�E ¸¹/ L§2�D�.

�� 1 publishing ���Q�E- R�.��.

drop database publishing

�� 2 R�� ���Q�E(� ={ �1)� M 0äs��.

drop database publishing, newpubs

�� • ���Q�E- R�24 ={ ���Q�E� �Ú MN ÅvR�zÓ, �{� H�¼ C\� LBzW, master ���Q�E� sysusages R sysusages DEF U�V� ={ ÀÖ�v fýs��.

• drop database� master..sysattributes� R�� ���Q�E��� Z� Oof� suspect h�f ÀÖ�- R�.��.

� �m

• ���Q�E R�� í�D master ���Q�E- 01=> .��.

• "� 01 �§(01&v ø<^ ûS �= _ ~?) ���Q�E� R�� ÷x��.

• �� ���Q�E� U�V� ��2Ó w� ���Q�E- R�2� �� drop database- 01� ÷x��. �y ¾�- Æ�2O "� ���Q�E� Primary ì U�V ��foreign ì �( �]� w� U�V$ Ð, ���Q�E- L§2�D�.

select object_name(tableid), frgndbnamefrom sysreferenceswhere frgndbname is not null

221

drop default

alter table/ 012O ª� ���Q�E �( �]/ R�� �y drop database �@/ �D Æ�2�D�.

• æY� ���Q�E- R�2� �� drop database- 01� ÷x��. � �� dbcc dbrepair �@/ 012�D�.

dbcc dbrepair (database_name, dropdb)

• Í0 S�/ 01� w/ ¡å� sybsecurity ���Q�E- R�� ÷x��. Í0 S�/ 01� ÷/ �� DEF B² �{&v sybsecurity- R�� wx��.

56

7� ���Q�E ¼�&Ì drop database- Æ�� wfÌ sybsecurity���Q�E� DEF B² �{&Ì R�� wx��.

89 �� – alter database, create database, dbcc, use

��� ���� – sp_changedbowner, sp_helpdb, sp_renamedb, sp_spaceused

drop default�� 01& A� Á�Ö- R�.��.

�� drop default [owner.]default_name[, [owner.]default_name]...

���� default_name S£ Á�Ö� �[i��. sp_help- Æ�2O S£ Á�Ö� ¸¹/ L§2�D�. ¼�&� �[/ fA24 "� ���Q�E� �� 01&v ¼�� l? �[� Á�Ö- R�� wx��. owner �� Á�Ö� "� 01&i��.

���Q�E� 01& A� Á�Ö§ datedefault- R�.��.

drop default datedefault

�� • "� _�^ 01& A� ��� �� §�z w� Á�Ö� R�� ÷x��. sp_unbindefault DEF G�DH- 012O � Á�Ö� §�- =�� �y R�2�D�.

�# $% "#SQL92 Transact-SQL ÎÍ

222

7A 9B: drop database – drop view

• "� Á�Ö� §�- =�2f �Ó _�^ 01& A� ��� �� ��� Á�Ö- §�� wx��. �J© 24 � Á�Öv �� Á�Ö- ÕÃû© ���.

• NULL _ �� Á�Ö- R�24 ={ _� Á�Öv NULL� ���. NOT NULL _ �� Á�Ö- R�24 ��� ci D ={ _ �� 2/ �D±Z� i�2f �/ ¡å )ÎDfv ^T>��.

56

7� drop default ��? Á�Ö� ={ Á�Ö� ¼�&© wZW #¬� ÷x��.

89 �� – create default

��� ���� – sp_help, sp_helptext, sp_unbindefault

drop function(SQLJ)�� SQLJ � - R�.��.

�� drop func[tion] [owner.]function_name[, [owner.]function_name] ...

���� [owner.]function_nameSQLJ � � SQL �[i��.

SQLJ � square_root- R�.��.

drop function square_root

�� • SQLJ � �� &¯� �1? Java in Adaptive Server Enterprise- ��2�D�.

• drop function? "� ���Q�E� 01& Í� � Ì R�2W DEF � � R�2f �x��.

7� ���Q�E ¼�&� sa T(role)/ vA 01&Ì drop function/Æ�� wx��.

89 �� – create function(SQLJ)

�# $% "#SQL92 Transact-SQL ÎÍ

223

drop index

drop index�� "� ���Q�E w� U�V� §iE- R�.��.

�� drop index table_name.index_name [, table_name.index_name]...

���� table_name§iE� _� t w� U�Vi��. � U�V? "� ���Q�E w> .��.

index_nameR�� §iEi��. Transact-SQL� ¡å §iE �[? U�V ��� Ó�=> 2fÌ ���Q�E�� Ó�2f �é¬ ���.

�� authors U�V au_id_ind §iEv ÷x��.

drop index authors.au_id_ind

�� • drop index �@/ Æ�24 ={ §iE� �� �f`ü C\/ M �D LB2© ���. �)� C\? �� ���Q�E Å 01� wx��.

• DEF U�V drop index- 01� ÷x��.

• drop index� unique �( �]/ f�2� §iE� R�� ÷x��. �)� §iE- R�234 alter table/ �= ={ �(�]/ R�2<^ U�V/ R�2�D�. unique �( �]§iE �� &¯� �1? create table/ ��2�D�.

• _3 w� Ä�� "� 01 �§ §iE� R�� ÷x��.Ø Ä�v _3 w�f, 01 �§ §iEv ��§f ��&¯� �1/ B34 sp_cursorinfo- 012�D�.

• U�V Ø §iEv w�f �� AB- áZ34 �y/012�D�.

sp_helpindex objname

OS� objname? U�V �[i��.

56

7� drop index ��? Á�Ö� §iE ¼�&© wZW #¬� ÷x��.

89 �� – create index

��� ���� – sp_cursorinfo, sp_helpindex, sp_spaceused

�# $% "#SQL92 Transact-SQL ÎÍ

224

7A 9B: drop database – drop view

drop procedure�� G�DH- R�.��.

�� drop proc[edure] [owner.]procedure_name[, [owner.]procedure_name] ...

���� procedure_nameR�� Transact-SQL ·� SQLJ G�DH� �[i��. ¼�&� �[/ fA24 "� ���Q�E� �� 01&v ¼�� l? �[� G�DH- R�� wx��. owner �� Á�Ö� "� 01&i��.

�� 1 showind �� G�DH- R�.��.

drop procedure showind

�� 2 xp_echo L� �� G�DH� *¹/ _¼.��.

drop procedure xp_echo

�� • drop procedure� 01& A�� �� G�DH, DEF G�DH,L� �� G�DH(ESP)- R�.��.

• Adaptive Server� 01&^ G�K¥� ={ G�DH- Æ�� �@� G�DH� ��- L§.��.

• G�DH Kï(�[? lfÌ number c9v �� � �Y�G�DH)? 2^� drop procedure 7Z� R�� wx��.'- t, ordersä� ¤1 G�K¥ �[Z� 01� G�DHv orderproc;1, orderproc;2 *� �[/ ß© � � �y �7/ 01.��.

drop proc orderproc

�Å Kï/ R�.��. G�DHv Kï¿z4 � Kï �w� ùù� G�DH� R�� ÷x��. '- t4 �y$lx��.

drop procedure orderproc;2

� �7? 31zf �x��.

G�DH KïZ�� L� �� G�DH- R�� ÷x��.

• sp_helptext DEF G�DH� G�DH� àEÖ- !D2W� àEÖ� syscomments H�z wx��.

• sp_helpextendedproc DEF G�DH� ESP� ={ DLL/ !D.��.

225

drop role

• ESP- R�24 DEF U�V� G�DH- R�2O *¹/ _¼2© ���. �)� 56? S£� DLL� ;</ ½f �x��.

• drop procedure� "� ���Q�E� 01& �� G�DHÌ R�.��.

56

7� drop procedure ��? Á�Ö� G�DH ¼�&© wZW #¬� ÷x��.

89 �� – create procedure, create procedure(SQLJ)

��� ���� – sp_depends, sp_dropextendedproc, sp_helpextendedproc, sp_helptext, sp_rename

drop role�� 01& A� T(role)/ R�.��.

�� drop role role_name [with override]

���� role_nameR�� T(role)� �[i��.

with overrideT(role) R� �� ��/ �D.��. with override üÙ/ 0124 ù ���Q�E� T(role) ��� R�zÈ�f O,-L§� �� ÷� � T(role)/ R�� wx��.

�� 1 MN ���Q�E� ��� M _¼� ¡åÌ �[� fA� T(role)/ R�.��. DEF ��&^ Å ¼�&� (H ù���Q�E ,O� ��/ _¼� �y T(role)/ R�=> .��. KJ© 2f �Z4 �@ �&v �Í.��.

drop role doctor_role

�� 2 �[� fA� T(role)/ R�2Ó MN ���Q�E�� T(role) �� ST ��� �� AB- R�.��.

drop role doctor_role with override

�# $% "#SQL92 Transact-SQL ÎÍ

226

7A 9B: drop database – drop view

�� • T(role)/ R�2S � ���/ R�� ��v ÷x��. T(role)/ R�24 with override üÙ 01 O, �¦÷� K T(role)� MN 01& ���� &dZ� R����.

• master ���Q�E� drop role/ 012�D�.

� �m

• DEF T(role)/ R�� � drop role/ 01� ÷x��.

56

7� DEF B² �{&Ì drop role/ 01� wx��.

drop role ��? grant all �@ ��z wf �x��.

89 �� – alter role, create role, grant, revoke, set

��� ���� – sp_activeroles, sp_displaylogin, sp_displayroles, sp_helprotect, sp_modifylogin

drop rule�� 01& A� õö/ R�.��.

�� drop rule [owner.]rule_name [, [owner.]rule_name]...

���� rule_nameR�� õö� �[i��. ¼�&� �[/ fA24 "� ���Q�E� �� 01&v ¼�� l? �[� õö/ R�� wx��. owner �� Á�Ö� "� 01&i��.

"� ���Q�E� pubid_rule õö/ R�.��.

drop rule pubid_rule

�� • õö/ R�2S � (H sp_unbindrule DEF G�DH- 012O ={ õö� §�- =�=> .��. � õö� ��v =�z wf �Z4 ) ÎDfv ^T^Ó drop rule �@ �&v �Í.��.

• "� õö� §�- =�2f �Ó _�^ 01& A� ��� �� � õö/ §�� wx��. �J© 24 � õö� �� õö/ ÕÃû© ���.

�# $% "#SQL92 Transact-SQL ÎÍ

227

drop table

• õö/ R�24 Adaptive Server� ={ õö/ �= �� ��2ü _ é� �( �] ÷� � ���- i�.��. S£���� é� ;<¬ $f �x��.

56

7� drop rule ��? Á�Ö� õö ¼�&© wZW #¬� ÷x��.

89 �� – create rule

��� ���� – sp_bindrule, sp_help, sp_helptext, sp_unbindrule

drop table�� ���Q�E� U�V A�� U�V� ���, §iE, Ö�<,

�� */ M R�.��.

�� drop table [[database.]owner.]table_name [, [[database.]owner.]table_name ]...

���� table_nameR�� U�V� �[i��. U�V� �� ���Q�E w/ �� ���Q�E �[/ fA2Ó ���Q�E l? �[� U�V� � �Y wZ4 ¼�& �[/ fA2�D�. owner �� Á�Ö� "� 01&�W database �� Á�Ö� "� ���Q�Ei��.

"� ���Q�E� roysched U�V$ � U�V� ��� R §iE- R�.��.

drop table roysched

�� • drop table/ 0124 ={ U�V� õö�^ Á�Ö� M K §�/ �© zÓ K� ��� Ö�<¬ &dZ� R����.U�V/ �D Ìt4 ±.� õö$ Á�Ö- �D §�2ÓÖ�<¬ �D Ìt> .��.

• U�V R� D ;</ $� DEF U�V? sysobjects, syscolumns,sysindexes, sysprotects, syscomments *i��.

�# $% "#SQL92 Transact-SQL ÎÍ

228

7A 9B: drop database – drop view

• �� �¼ �. �kE- 01� w� ¡å� R�z� U�V� create existing table� ÌtA ¡å� �Ï �P� �U�V� R�zf �x��. �� Adaptive Serverv DEF U�V� U�V �� ��- R�.��.

� �m

• DEF U�V drop table �@/ 01� ÷x��.

• U�V/ partition24 �- R�� ÷x��. (H alter table�@� unpartition u/ 01=> drop table �@/ Æ�� wx��.

• ���Q�E� U�V/ R�� w� 0�? ={ U�V�¼�&Si��. '- t, otherdb ���Q�E� newtable�ä� U�V/ R���Ó vA.D�.

drop table otherdb..newtable

·�

drop table otherdb.yourname.newtable

• U�V� MN �/ delete2<^ truncate table �@/ 0124={ U�V? drop� �ef K�� £�2© ���.

RH S�TU�� 89 integrity constraint� ¨q B�C �

• ª� ���Q�E �( �]/ Ìt � Adaptive Server� ù ���Q�E� sysreferences DEF U�V �y AB- H�.��.

� 7-1: � integrity constraint� �R %&$ '(

• ��2� U�V? ��z� U�V� AB �ä PäfS �7 Adaptive Server� �y/ 312f �x��.

• ��z� U�V R�

• �( �]� w� Ð, ���Q�E R�

• sp_renamedb� ù ���Q�E� �[  ¡

sysreferences) *+, ��

-./0 12) < ��� R0 (

-.40 12) < ��� R0 (

� � ID refkey1 - refkey16 fokey1 - fokey16

��A ID reftabid tableid

������ �� pmrydbname frgndbname

229

drop trigger

sp_helpconstraint DEF G�DH- 012O © U�V�R�� U�V/ ��2Ó w�f L§2�D�. (H alter table/ 012O �( �]/ R�� �y drop table �@/ �D �B�D�.

• ��2� U�V�^ � U�V� ���Q�E- 7� ÷� R�� wx��. Adaptive Server� ��z� ���Q�E� foreign ì AB- &dZ� R�.��.

• ª� ���Q�E �( �]/ �v ·� R�2<^ ª� ���Q�E �( �]� w� U�V/ R�� �@� ;</$� ���Q�E- ,- 'G2�D�.

��! �)� ���Q�E� 6S 'G- ��24 ���Q�Ev æY� wx��. ª� ���Q�E �� integrityconstraintv w� ���Q�E- ��2� �� &¯��1? ��� �� ���- ��2�D�.

56

7� drop table ��? Á�Ö� U�V ¼�&© wZW #¬� ÷x��.

89 �� – alter table, create table, delete, truncate table

��� ���� – sp_depends, sp_help, sp_spaceused

drop trigger�� �<- R�.��.

�� drop trigger [owner.]trigger_name[, [owner.]trigger_name]...

���� trigger_nameR�� Ö�<� �[i��. ¼�&� �[/ fA24 "� ���Q�E� �� 01&v ¼�� l? �[� Ö�<- R�� wx��. owner �� Á�Ö� "� 01&i��.

"� ���Q�E� trigger1 �<- R�.��.

drop trigger trigger1

�# $% "#SQL92 Transact-SQL ÎÍ

230

7A 9B: drop database – drop view

�� • drop trigger� "� ���Q�E� Ö�<- R�.��.

• U�V� Ö�<- �D±Z� R�2f �é¬ d+� 56(insert, update, delete *) �= ��� Ö�<- Ìt wx��. U�V�^ _�� d+� 56 �� � Ö�<@� �� Ö�<- ÕÃûS �7i��.

• U�V/ R�24 Adaptive Server� K� ��� Ö�<- &dZ� R�.��.

56

7� drop trigger ��? Á�Ö� Ö�< ¼�&© wZW #¬� ÷x��.

89 �� – create trigger

��� ���� – sp_depends, sp_help, sp_helptext

drop view�� "� ���Q�E� �- 2^ �Y R�.��.

�� drop view [owner.]view_name [, [owner.]view_name]...

���� view_nameR�� �� �[i��. ¼�&� �[/ fA24 "� ���Q�E� �� 01&v ¼�� l? �[� �- R�� wx��. owner �� Á�Ö� "� 01&i��.

"� ���Q�E� new_price �- R�.��.

drop view new_price

�� • drop view- 0124 ={ �� A�� ��/ k�� ST ABv sysobjects, syscolumns, syscomments, sysdepends, sysprocedures,sysprotects *� DEF U�V� R����.

• '- t, �� �^ �� G�DH� �- ��� �@� K£� O,- L§.��.

56

7� drop view ��? Á�Ö� � ¼�&© wZW #¬� ÷x��.

�# $% "#SQL92 Transact-SQL ÎÍ

�# $% "#SQL92 Transact-SQL ÎÍ

231

drop view

89 �� – create view

��� ���� – sp_depends, sp_help, sp_helptext

232

8 ���� ��: dump database – dump transaction

dump database�� load database- 012O ø/ w� �#Z� Ö×ØÙ �K- �

�� MN ���Q�E� I6 0ñ/ ÌX��. 'G R ���Backup Server- �= ����.

�� dump database database_nameto [compress::[compression_level::]]stripe_device

[at backup_server_name][density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]

[stripe on [compress::[compression_level::]]stripe_device[at backup_server_name][density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name]]

[[stripe on [compress::[compression_level::]]stripe_device[at backup_server_name][density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name]]...]

[with { density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name,[dismount | nodismount],[nounload | unload],retaindays = number_days,[noinit | init],notify = {client | operator_console}} ]

233

dump database

���� database_name���- m0� ���Q�E �[i��. � ���Q�E �[? ���, �Å   ·� �� G�DH �g  � fA� wx��.

compress::compression_level0,� 9 0�� .&�� 0? ��2f �Ly/, 9� �Ó ��l� ��`y/ ^T���. compression_level/ fA2f �LZ4 Á�Ö� 1i��. compress üÙ �� &¯� �1? ��� �� ���� 27� "01& ���Q�E I6 R m�"/ ��2�D�.

�� compress üÙ? �Å B��Ì d52W backup_server_nameüÙ/ 01� ÷x��.

to stripe_device���- m0� �Y Á �Ei��. 'G Á �E- fA�� 01=> � �# �� �1? � pq� "'G Á �E fA"/ ��2�D�.

at backup_server_nameBackup Server� �[i��. Á�Ö Backup Server� 'G� �� � �g  - fA=�� ² ���. � �g  � �ÖýÂ- �= �Ï Backup Server� 'G� ¡åÌ fA2�D�.� üÙ/ 01= �Ï Backup Server- �Ó 32gef fA� wx��. �ÖýÂ- �= 'G� �� 'G Á �Ev ,�� ���� Æ�z� �Ï Backup Server� ]:^7 J/fA.��. §�h�E �+/ 012� |}~� ¡å� §�h�E �+ í�D backup_server_name� w> .��.

density = density_valueU�G Á �E �� Á�Ö �¬- �A�.��. ��� �¬� 800, 1600, 6250, 6666, 10000, 38000i��. MN 2� MN U�G �ä�ã ��2f� �Zm� &�� U�G �ä�ãø� �¬- 01=> .��.

blocksize = number_bytes'G Á �E �� Á�Ö V¹ ÂS- �A�.��. V¹ ÂS� �¼� ���Q�E � h�f(�,Ô� DEF� ¡å2048 �Ö) �Y�> 2W ���Q�E h�f ÂS� AL� 7 O> .��. ��/ �±¿234 V¹ ÂS- 2� <X�Û, Ú 65536, 131072, 262166 *Z� fA2�D�.

234

8A 9B: dump database – dump transaction

capacity = number_kilobytes � Á �Ev U�G ê� 2^ � w� ��� �� 1Ài��. � 1À? �¼� ���Q�E �� h�f- 6$=> 2W Á �E �� 1ÀB�� ±> .��.

1À/ ¦Õ2� +í±§ õö? CÉ6Åv !D� ={ Á �E �� 1À� 70%- 012Ó ^�f 30%� �, �Ä� \Ï R U�G @Â� l? �P1�- �= no � ­®i��.�� 1À�þ �ä�ã� Á �E 1À�W �ä�ã &Å 1À� é��. �,Ô� ¡å � õö� ±1zfÌ CÉ6Å^Á �E �� �P1�� ��� §= MN ¡å ±1zf�/ ¬ wx��.

U�G ô� @Ä- ��� Íf2f F2� UNIX |}~� ¡å� Ñ@ ̂�? KB- U�G� 'G� w�f !D2�D�. °�± ¡� �[Z� fA� 'G Á �E� ;<� capacity-CÉ=> .��. 'G Á �Ev /�± Á �E �[Z� fA� ¡å 01&v 1À/ fA2f �Z4 Backup Server�sysdevices DEF U�V H�� size �g  - 01.��.

dumpvolume = volume_name={ ê� �{� �[/ fA.��. volume_name� �� 0�� 67&i��. Backup Server� S£ 'G- ÕÃû<^ �U�G- 'G2<^ �1/ #%� ÷� U�G� 'G� �ANSI U�G ��V volume_name/ Ù��. load database �@? ��V/ Ý02O �F� ê�/ ��24 ) ÎDf-ÌX��.

��! �;&v AL� U�G- ��� w¬¹ Í�2� MN U�G ê� ��V/ â��D�.

stripe on stripe_device�v 'G Á �Ei��. to stripe_device u �[� fA� Á �E- ��= �Ó 32g Á �E- 01� wx��. Backup Server� ���Q�E- <� k�� ÂS� ^r ù,Ô/ �� �� Á �E� B���. MN Á �E� dD 'Gv ��fm� 'G ��� D\� òÓ 'G D ��� ê�  ¡¬ o ±x��. 'G Á �E fA ­® �� �1? 240 h�f� "'G Á �E fA"/ ��2�D�.

dismount | nodismount_� `�a �b)* cde2� U�G- ��� Y�� �f� §f O,- 8A.��. Sñ±Z� 'G 01z� MNU�G� 'Gv C�z4 Ô����. nodismount- 0124 �v 'G ·� �� U�G- ¦e 01� wx��.

235

dump database

nounload | unload'Gv C�� �y U�G- zÍ/ §f O,- 8A.��.Sñ±Z� U�G- zÍf �Zm� d+� U�G ê� �v� 'G� wx��. @fO 'G �+ �= unload- fA24 �� 'G ê�Z� �v� wx��. ��� 'Gv C�� � ={ U�G- zÍÓ ���2© ���.

retaindays= number_days

UNIX ���2� ÁEÂ- 'G24 01&v � 'G- ÕÃûf �¬¹ Backup Serverv BU2� D\/ fA.��. � S\� Ì�zS � 'G ÕÃûS- D¬24 Backup Serverv Ì�zf �? ê�/ ÕÃûS � L§/ �;.��. fg\h�72 i�Q j2k ?%+0 � i�2* EK lmVI34! .

ÚD ÕÃ� w� 'G� ¡å number_days� í�D #� A �<^ 0�> .��. retaindays 2/ fA2f �Z4 BackupServer� sp_configure� �A� tape retention in days 2/ 01.��.

noinit | init'G- S£� 'G �+ �v�f é�4 U�G ê�/ �D6S¿�f, Ú ÕÃ�f O,- 8A.��. Sñ±Z� AdaptiveServer� 'G- @fO U�G ô� @ �y �v2O �v���Q�E- d+� ê� 'G� w¬¹ .��. � 'G� �� ê� 'G� �� ê�Ì �v� wx��. U�G�'G2� { H� ���Q�Ev � �1/ ÕÃû¬¹ 234init- 01.��.

Backup Serverv U�G Á �E 7&- U�G �� �+ H�2<^ 6��Ö2¬¹ 234 init- 01.��. &¯� �1? ��� �� ���- ��2�D�.

file = file_name'G �+ �[i��. � �[? 17&- 6$� ÷ZW �+�[ �� �; Å� õö/ X => .��. &¯� �1?241 h�f� "'G �+"/ ��2�D�.

236

8A 9B: dump database – dump transaction

notify = {client | operator_console}Á�Ö ÎDf �Y/ �A�.��.

�;& �9� S�/ �C2� �; Å�� ê�  ¡ ÎDf� ¢Y Backup Serverv Æ�z� ���� �;& �9�� �ä���. dump database- 6S¿� �9� ¯ÙZ� �� BackupServer ÎDf- B�34 client- 01.��.

UNIX¨� �;& �9� S�/ �C2f �� �; Å�� ÎDf� dump database- D5� `ä��Ö� �ä���. BackupServerv Æ� �§ �9�� ÎDf- B�34 operator_console/ 01.��.

�� 1 ���Q�E pubs2- U�G Á �E� 'G.��. U�G ANSI U�G ��V� wZ4 � �@? �9 � U�G w� �+ � 'G- �v.��. init üÙ� fAz wf �S �7i��.

dump database pubs2 to "/dev/nrmt0"

�� 2 UNIXl no – REMOTE_BKP_SERVER Backup Server-012O pubs2 ���Q�E- 'G.��. � �@� ̄ 'G Á �E- fA`Zm� Backup Server� ù Á �E@� ���Q�E- ( 1/3g 'G.��. � �@? U�G� S£ �+ 'G- �v.��. UNIX DEF� retaindays üÙ? 14+ \ U�GÕÃ� ÷¬¹ fA.��.

dump database pubs2 to "/dev/rmt4" at REMOTE_BKP_SERVER stripe on "/dev/nrmt5" at REMOTE_BKP_SERVER stripe on "/dev/nrmt0" at REMOTE_BKP_SERVERwith retaindays = 14

�� 3 init üÙ? U�G ê�/ 6S¿2O S£ �+/ M ÕÃÙ��.

dump database pubs2 to "/dev/nrmt0" with init

�� 4 'Gv C�z4 'G ê�/ zÍx��.

dump database pubs2 to "/dev/nrmt0" with unload

237

dump database

�� 5 UNIXl no – notify u? Á�Ö �:§ Backup Server ��� ÷�� �ä2� �� ê�/ 'G �;/ D5� `ä��Ö� ¡2¬¹ �;2� Backup Server ÎDf- �ä.��.

dump database pubs2 to "/dev/nrmt0" with notify = client

�� 6 �� X 4- 012O dmp090100.dmpä� �+ pubs2���Q�E� ��� 'G- Í�.��.

dump database pubs2 to "compress::4::/opt/bin/Sybase/dumps/dmp090100.dmp”

�� • ! 8-1? ���Q�E I6 01z� �@ R DEF G�DH- ��.��.

� 8-1: �� g�J � 6w xy� ESU?

� �m

• 11.x Adaptive Server� 10.x Backup Server�� 'G� ÷x��.

• Sybase 'G� Sybase Ð� ���(': UNIX S¹)- l? U�G �Ú � ÷x��.

"!u vw ��u ��£¤¥� "�R \]0 ������ �& ¨@ ýpR ië��.

dump database

£¤¥� "�R ¨@ ýp: �K *+2S T� ;<4 truncation?��.

dump transaction

������ ³¹��Q oò- �t2É £¤¥�"�R ýp?��.

dump transaction with no_truncate

ü¶2S T� "�R truncation: �K �������&R ñ*?��.

dump transaction with truncate_onlydump database

"� ��� ;42Ñ ��� }GQ oò- �t2É"�R truncation2� ������ �&R ñ*?��.

dump transaction with no_logdump database

Backup Server9 AB '! �SQ C?��. sp_volchanged

238

8A 9B: dump database – dump transaction

• ���Q�E ª� ���Q�E �� integrity constraintvw� ¡å sysreferences DEF U�V? Ð, ���Q�E�J(ID HUv é )/ H�.��. Adaptive Server� loaddatabase- 01= ���Q�E �[/  ¡2<^ �� �P� ��2� ¡å �� �8�/ B�2f �x��.

��! ���Q�E- �� �[Z� ��2<^ �� AdaptiveServer� �d234 ���Q�E- 'G2S � (H altertable/ 012O Ð, �� integrity constraint- M R�=>.��.

• 01& A� Ö×ØÙ�� dump database- 01� ÷x��.

• dump transaction� �9 Æ� �§ ���Q�E dump database- Æ�24 dump database� Ö×ØÙ 'Gv C�� �ef �S.��.

• 1/4§: IÖ�f U�G- 0124 U�G{ ���Q�E^Ö×ØÙ/ 2^Ì 'G� wx��.

• ���Q�Ev �Gä§ h�f wZ4 'G� ÷x��. �Gä§ h�f- �ä§Z� )�� Æ�234 sp_forceonline_db·� sp_forceonline_page- 01.��.

©/ �ª«¬

• Adaptive Server ���Q�E 'G� p?�m� ���Q�Ev 01 �+ � Æ�� wx��. 2fÌ DEF e¬v �� ©3h wZm� ���Q�Ev $¬2© 6��Özf�/ � dump database- Æ�2� � !x��.

• master Uqr�a @�?/� st uTv4!. AS±§I6 �Ь create database, alter database, disk init �@/ Æ�� �� master- 'G.��.

• ���Q�E-  ¡� �@� model ���Q�E- I6.��.

• ���Q�E- ÌN b� dump database- 012O ���Q�E �Å- m0.��. dump database- Æ�2S �ef� ����Q�E� dump transaction/ Æ�� ÷x��.

• ª� ���Q�E �( �]/ �v ·� R�2<^ ª� ���Q�E �( �]� w� U�V/ R�� �@� �Y ���Q�E- ,- 'G.��.

��! �)� ���Q�E� 6S 'G- ��24 ���Q�Ev æY� wx��.

239

dump database

• 01& ���Q�E� Ö×ØÙ �K- AS±Z� I62�+A/ ¯���.

• =¦2/ 012O I6 G�DH- &d¿.��. AdaptiveServer� @fO =¦2/ �1234 ��� ¯K(Ö�� %¬� Á �E w� �K ¯K(Ö- 012O 01& ���Q�E- Í�.��. =¦2 �� &¯� �1? ��� �� ���- ��2�D�.

��� S�TU�� ©/

• master, model, sybsystemprocs ���Q�E� &Å Ö×ØÙ�K- �� %¬� ¯K(Öv ÷x��. dump transaction withtruncate_only- 01= �K- R�� �y dump database- 012O ���Q�E- I6.��.

• master ���Q�E ;</ 9:� )� ¡å m� G�DH� master ���Q�E I6� ��.��. master ���Q�E I6 R m�/ �� p¦% f�? ��� �� ���- ��2�D�.

• £�1 Á �E- I6 012� ¡å ê�  ¡ ÎDf¤!� w� · �� Adaptive Server- vfÓ wf ��4master ���Q�E �Åv 2^� ê� � tv> .��.

©/ ���� QD

• 'G Á �E- ���, �Å   ·� �g  � �� G�DH fA� wx��.

• null Á �E(UNIX�� /dev/null)� 'G� ÷x��.

• U�G� ÁE Á �E�� O) EÖä�G 'G� wx��. � Á �E O) 'G- Ó� S�? U�G Á �E�Ì f����.

• �Å 'G Á �E- �y$ l� fA� wx��.

• sysdevices DEF U�V w� /�± Á �E �[

• u� ¡� �[

• Y� ¡� �[

Backup Server� Adaptive Server� "� 56 ÁßÔ�- 012O Y� ¡� �[/ L§.��.

240

8A 9B: dump database – dump transaction

• �ÖýÂ- �= 'G� �� 'G Á �E� u� ¡� �[/ fA=> .��. � ¡� �[? Backup Serverv Æ� �§ ���� ��� �[�> .��. ¡� �[ þ&^.& ·� Êò(_) �Ð� �� 7&v tó ¡å �- �+! ��D�> .��.

• 'G Á �E� ¼�� R �� 7�� dump �@ 01/ ­=� wx��. sp_addumpdevice G�DH� Á �E- DEFU�V �v2S� 2fÌ Á �E 'G� w�<^ 'GÁ �E �+/ Í�� w�� 0Æ? B�2f �x��.

• �� �� 'G Á �E �+/ 01��4 dD � �Y�'G(·� ��)- Æ�� wx��.

• Á �E �+� �9 £�2� ¡å Backup Server� � �+/ ÕÃûW truncation2f �x��. '- t, ���Q�E- Á �E �+ 'G2O K Á �E �+� 10MBv zÈ�Ó vA.��. �y K Á �E 'G2� ���Q�EÂSv o 5�4 � Á �E �+? ¦e 10MBi��.

B�/ ���� �h QD

• init �A& ÷� dump �@/ Æ�2Ó Backup Server� Á �E ��/ fA� ÷� ¡å � dump �@ �&v �Í.��. &¯� �1? ��� �� ���- ��2�D�.

Backup Server

• Adaptive Server¨� d+� ��� Æ�z� Backup Serverv í�D w> .��. � Backup Server� master..sysserversU�V ¸¹ w> .��. � ÀÖ�� �: ·� 6K��� � Í�zW R�24 ² ���.

• I6 Á �Ev �� ��� w� �ÖýÂ- �= 'G2� ¡å� �Ï ��� �:� Backup Serverv w> .��.

©/ ­®

• init üÙ/ 01= ���Q�E- 'G24 U�G^ ÁEÂw� S£ �+/ M ÕÃÙ��.

• Backup Server� with notify u� fA� �:� 'G �+ �[/ �ä.��. I6 U�G- H�2S � �;&� ���Q�E �[, �+ �[, ¾¿ R ST AB- �1= ��V/Ìt> .��. #% ��V� ÷� U�G- ��� ��with headeronly� with listonly üÙ/ 012O �1/ fA.��.

241

dump database

­® �G ) 'W �G

• 'G �+ �[? 'G� ���Q�E� 'G� DS- �%.��. 2fÌ ÁEÂ� 'G`�f UNIX U�G� 'G`�f �ä file_name�7�� ����.

file = file_name

ÁE 'G2� ¡å ÁE �+� ¡� �[? K �+ �[�S¬ .��.

2fÌ UNIX U�G 'G2� ¡å � ¡� �[? �+ �[� é��. ANSI !X �+ ª³ �#� HDR1 ��V�+ �[ ��v wx��. ANSI õÏ/ X 2� U�G� ¡å��V� �+ �[ ��� �+ �[/ M wx��. ANSIõÏ? U�G� ��VÌ ±1zW ÁE �+� ±1zf �x��.

� �7 �y 7�v �Í.��.

• UNIX� U�G �+ �[ �� ANSI õA/ �[f �x��. UNIX� U�G� ���- ��V� ÷� Z�\½.��. � U�Gv �+� ^" wfÌ �)� �+� �[� ÷x��.

• Backup Server�� ANSI U�G ��V/ 012O B�AB- H�2W ANSI �9� �D.��. �ä� B� �[� ÁE �+¬ H�zm� ÁE �+¬ ANSI��V� wx��.

�+ �[� �9� 01&v Æ�2� 'G� B& �ä Päs��. �y �7� '�- #$%D�.

dump database database_name to 'filename' with file= 'filename'

• OS� { H� filename? �+/ !D2S �= i�2�¡� �[/ ^T���.

• H� filename? Æ� S¹� HDR1 ��V H�z w� B� �[Z� 01&� dump ·� load �@� file=filename�g  - 01= � �[/ fA� wx��.

B� �[/ fA24 ���Q�E �� D �P� � �[/012O �,� B�� �:- èx��.

B� �[/ fA2f �Z4 �P� Ì^� { H� B�/ ��.��.

¡å M file='archivename'� HDR1 ��V H�� �[/�A2W �� ÆDz� ��� � �[/ 012O ? ����- èÓ w�f L§.��.

242

8A 9B: dump database – dump transaction

B� �[/ fA2f �Z4 & �� ���- 'G2Ó { H�� Ì^� B�/ ��.��.

to ’filename’ u� filename� �9� ÁE 'G§f ·� U�G 'G§f �ä Päs��.

• U�G 'G� ¡å � 'filename'? U�G Á �E �[i��.

• ÁE 'G� ¡å � 'filename'? ÁE �+ �[i��.

ÁE 'G�Ó 'filename'� C�� ¡�v é: ¡å �P�"� 56 ÁßÔ�- 012O A.��.

• U�G- 'G24� �+ �[/ fA2f �� ¡å BackupServerv �y �1/ Ñ82O Á�Ö �+ �[/ ÌX��.

• ���Q�E �[� @fO 77&

• �¬- !D2� &� .&

• ¾¿- !D2� ¯&� .&(1-366)

• 16A � ^T� 'G �+� ÌtA D\

'- t4 cations980590E100 �+� 1998� 59+� ¾ ÌtA publications ���Q�E� 0ñ� wx��.

wz 8-1: �� g�J ��{ |{� }~ �� �' XY

¯° �G

• 'G ê�? ANSI U�G ��V !X �ä ��V/ ÌX��. � ��V� /�± ê� HU� EÖä�G s. ��� Á �E �:v !D���.

cations 98 059 0E100

�������� �� �� 7 �

�� ��

�� ( � )�� �� � ���

243

dump database

• �� D Backup Server� U�G ��V/ 012O ê�� AL� ¶�� ?3³ w�f L§.��. �J© 24 'G DB� o ±? � Á �E� ��� wx��.

�� �ÖýÂ- �= 'G R ��� �� ù 56@� l? � EÖä�G Á �E- fA=> .��.

©/ ¯° �A

• UNIX ���2�* U�G 1À ¬P24 Backup Server�ê�  ¡/ �;.��. · �� ê�/ ? � �;&� BackupServer� ��� v�� Adaptive Server� sp_volchanged DEF G�DH- Æ�2O Backup Server �B.��.

• "� ?3A ê�� 7��/ Íf24 Backup Server� ̀ ä��Ö ·� �;& ÷�� ÎDf- �ä2O ê�  ¡/ �;.��. �;&� sp_volchanged DEF G�DH- 012O� ÎDf ¤!.��.

¯° �� �q ±²³(

• Sñ±Z� (noinit) Backup Server� d+� U�G ê� ¦e=� 'G- Í�2O Ó1À U�G �Å- �$±Z� 01.��. ���� U�G ô� @ �y �v���. � 'G��� ê� 'G� @fO ê�Ì �v� wx��. U�G ûS � Backup Server� { H� �+� éb Ì�zf �L�f L§.��. � U�G Sybase Ð� ���v w� ¡å Backup Server� � U�G- <,2O ��� AB� æY/ Ox��.

• init üÙ/ 012O ê�/ �D 6S¿.��. init- fA24Backup Server� U�G Sybase Ð� ���v w<^ { H� �+� Ì�zf �L<^ U�G ANSI ܯE �� 0¢� w� ¡åä¬ S£ �1/ M ÕÃÙ��.

• K8 8-2� �y �7/ 012O ¯ ���Q�E- 2^� ê� 'G2� ­®/ ��.��.

• init { H� 'G1 U�G 6S¿

• noinit(Á�Ö) ¦ez� 'G �v

• unload @fO 'G � U�G- zÍé ���

244

8A 9B: dump database – dump transaction

wz 8-2: l~ ��� �W �� �� g�J |{

32´, OS�P 64´, OS� ©/

32kÖ P�� Adaptive Server� ���Q�E 'G� d+� |}~� Adaptive Server� 64kÖ P�$ C�k U³zW í� ¡å¬ @vvs��.

µ¶· ����� �x· S�TU�� ©/

• dump database D5 D Adaptive Server� MN ���Q�E R �K Á �E� Primary Á �E �[/ Backup Server� �P.��. Primary Á �Ev 9) =�zÈ�4 Adaptive Server�secondary Á �E �[/ �P.��. Backup Serverv ����ä/ C�2S � �[� fA� Á �E �&v �Í24 Adaptive Serverv 'G- _¼.��.

• dump database A� � 01&v �[� fA� ���Q�EÁ �E� 9)- =�23Ó 2� ¡å Adaptive Server� ÎDf- !D.��. disk unmirror �@/ Æ�� 01&� 'G-_¼2<^ � 'Gv C�� �ef disk unmirror- fÑ� wx��.

56

7� DEF ��&, ���Q�E ¼�& K�Ó �;& T(role)/ vA01&Ì dump database- Æ�� wx��.

init; ��4x����mydb����jkyB;����

/dev/nrmt4` z_

yourdb����jkyB;����/dev/nrmt4` z_

unload; ��4xpubs2 jkyB;

/dev/nrmt4` z_

�# $% "#SQL92 Transact-SQL ÎÍ

245

dump transaction

89 �� – dump transaction, load database, load transaction

��� ���� – sp_addthreshold, sp_addumpdevice, sp_dropdevice, sp_dropthreshold, sp_helpdevice, sp_helpdb, sp_helpthreshold, sp_logdevice, sp_spaceused, sp_volchanged

dump transaction�� Ö×ØÙ �K- m02Ó 012f �� ,Ô/ R�.��.

�� �Ë �K- 'G234

dump tran[saction] database_name to [compress::[compression_level::]]stripe_device

[at backup_server_name][density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name]

[stripe on [compress::[compression_level::]]stripe_device[at backup_server_name][density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name]]

[[stripe on [compress::[compression_level::]]stripe_device [at backup_server_name][density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name] ]...]

[with { density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name,[dismount | nodismount],[nounload | unload],retaindays = number_days,[noinit | init],notify = {client | operator_console}, standby_access }]

I6 m0- 2f �Ó �K- truncation234

246

8A 9B: dump database – dump transaction

dump tran[saction] database_name with truncate_only

1À� vu v �K- truncation234 w�x yz/�k {%v4!.

dump tran[saction] database_name with no_log

���Q�E Á �E �& �Í � �K- I6234

dump tran[saction] database_name to [compress::[compression_level::]]stripe_device

[at backup_server_name][density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name]

[stripe on [compress::[compression_level::]]stripe_device [at backup_server_name][density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name]]

[[stripe on [compress::[compression_level::]]stripe_device[at backup_server_name][density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name] ]...]

[with { density = density_value, blocksize = number_bytes,capacity = number_kilobytes, dumpvolume = volume_name,file = file_name,[dismount | nodismount],[nounload | unload],retaindays = number_days,[noinit | init],no_truncate, notify = {client | operator_console}}]

���� database_name���- m0� ���Q�E �[i��. � �[? ���, �Å   ·� �� G�DH �g  � fA� wx��.

247

dump transaction

compress::compression_level0,� 9 0�� .&�� 0? ��2f �Ly/, 9� �Ó ��l� ��`y/ ^T���. compression_level/ fA2f �LZ4 Á�Ö� 1i��. compress üÙ �� &¯� �1? ��� �� ���� 27� "01& ���Q�E I6 R m�"- ��2�D�.

�� compress üÙ? �Å B��Ì d52W backup_server_nameüÙ/ 01� ÷x��.

truncate_onlyuT |{a )� .= �K� 012f �� ,Ô/ R�.��.��� ¯K(Ö�� %¬� Á �E �K ¯K(Öv ÷����Q�E� 012W 'G Á �E ·� Backup Server�[/ fA=�� ² ���.

no_log uT |{a )� .= :}~g �#2 ����a ��)� .\ � �K� 012f �� ,Ô/ R�.��. �K C\� ,z2W �¼� dump transaction �@/ Æ�� ÷/ �Ì no_log-Æ�.��. no_log� @fO �Aµ� 012W dump transactionwith truncate_only �&v �Í� ¡åÌ 01=> .��. &¯� �1? ��� �� ���- ��2�D�.

to stripe_device���- 'G� Á �Ei��. 'G Á �E fA D 01��# �� �1? 240 h�f� "'G Á �E fA"/ ��2�D�.

at backup_server_nameBackup Server� �[i��. Á�Ö Backup Server 'G� ¡å� � �g  - fA2f �x��. �ÖýÂ- �= �ÏBackup Server 'G� ¡åÌ fA.��. � üÙ/ 0124 �Ó 32g� �Ï Backup Server- fA� wx��. �ÖýÂ- �= 'G� �� 'G Á �Ev Ñ8� ����Æ�z� �Ï Backup Server� ]:^7 J/ fA.��. §�h�E �+/ 012� |}~� ¡å� §�h�E �+backup_server_name� ^T^> .��.

density = density_valueU�G Á �E� Á�Ö �¬- �A�.��. ��� �¬�800, 1600, 6250, 6666, 10000, 38000i��. MN U�G �ä�ã � 2� ��2f� �Zm� &�� U�G �ä�ã ø�AL� �¬- 01=> .��.

248

8A 9B: dump database – dump transaction

blocksize = number_bytes'G Á �E� Á�Ö V¹ ÂS- �A�.��. V�)� h�: �� 7�a {%)���. Á�Ö V¹ ÂS� ={ DEF v� ±.� V¹ ÂSi��. V¹ ÂS� �¼� ���Q�E � h�f(�,Ô� DEF� ¡å 2048 �Ö) �Y�> 2W ���Q�E h�f ÂS� AL� 7 O> .��.

capacity = number_kilobytes � Á �Ev U�G ê� 2^ � w� ��� �� 1Ài��. � 1À? �¼� ���Q�E �� h�f- 6$=> 2W Á �E �� 1ÀB� �� ±> .��.

1À/ ¦Õ2� +í±§ õö? CÉ6Åv !D� ={ Á �E �� 1À� 70%- 012Ó ^�f 30%� �, �Ä� \ÏR U�G @Â� l? �P1�- �= no � i��. �,Ô� ¡å � õö� ±1zfÌ CÉ6Å^ Á �E �� �P1�� ��� §= MN ¡å ±1zf �/ ¬ wx��.

U�G ô� @Ä- ��� Íf� ÷� UNIX |}~��U�G 'G� w� 1À(KB)/ !D=> .��. °�± ¡� �[Z� fA� 'G Á �E� ¡å ;<� capacity- CÉ=> .��. 'G Á �Ev /�± Á �E �[Z� fA�¡å 1À/ fA2f �Z4 Backup Server� sysdevices DEFU�V H�� size �g  - 01.��.

dumpvolume = volume_name={ ê� �{� �[/ fA.��. volume_name� �� 0�� 6&i��. Backup Server� S£ 'G- ÕÃû<^ � U�G- 'G2<^ �1/ #%� ÷� U�G� 'G� �ANSI U�G ��V volume_name/ Ù��. load transaction �@? ��V/ Ý02O �F� ê�/ ��24 ) ÎDf-ÌX��.

stripe on stripe_device�v 'G Á �Ei��. to stripe_device u �[� fA� Á �E- ��= �Ó 32g Á �E- 01� wx��.Backup Server� ���Q�E- <� k�� ÂS� ^r ù,Ô/ �� �� Á �E� B���. MN Á �E� dD 'Gv ��fm� 'G ��� D\� òÓ 'G D ��� ê�  ¡¬ òX��. 'G Á �E fA ­® �� �1? 240 h�f� "'G Á �E fA"/ ��2�D�.

249

dump transaction

dismount | nodismount_�? `�a �b)* cde2� U�G- ��� Y�� �f� §f O,- 8A.��. Á�Ö� 'G 01z� MNU�G� 'Gv C�z4 Ô����. nodismount- 0124 �v 'G ·� �� U�G- ¦e 01� wx��.

nounload | unload'Gv C�zÓ U�G- zÍ/ §f O,- 8A.��. Á�Ö� U�G- zÍf �Zm� d+� U�G ê� �v�'G� wx��. @fO 'G �+ �= unload- fA24�� 'G ê�Z� �v� wx��. ��� 'Gv C�� �={ U�G- zÍÓ ���2© ���.

retaindays= number_daysUNIX ���2� 01&v 'G- ÕÃûf �¬¹ BackupServerv BU2� S\/ fA.��. fg\ h�7, 1/49��:��, �� �� �62 ?%�4!. !� �� �62� fg\ � ��a Z�� ,[ ��2 ?%�4!. � S\� Ì�zS � 'G ÕÃûS- D¬24 Backup Serverv Ì�zf�? ê�/ ÕÃûS � L§/ �;.��.

ÚD ÕÃ� w� 'G� ¡å number_days� í�D #� A �<^ 0�> .��. retaindays 2/ fA2f �Z4 BackupServer� sp_configure� �A� �P �Å tape retention in days 2/ 01.��.

noinit | init'G- S£� 'G �+ �v�f ·� U�G ê�/ �D 6S¿�f, Ú ÕÃ�f O,- 8A.��. Sñ±Z� AdaptiveServer� 'G- @fO U�G ô� @ �y �v2O �v���Q�E- d+� ê� 'G� w¬¹ .��. � 'G� �� ê� 'G� �� ê�Ì �v� wx��. U�G�'G2� { H� ���Q�Ev � �1/ ÕÃû¬¹ 234init- 01.��.

Backup Server� U�G Á �E 7&- U�G �� �+ H�2<^ 6��Ö2¬¹ 234 init- 01.��. &¯� �1? ��� �� ���- ��2�D�.

file = file_name'G �+ �[i��. � �[? 177&- 6$� ÷ZW �+�[ �� �; Å� õö/ X => .��. �+ �[/ fA2f �Z4 Backup Serverv Á�Ö �+ �[/ Í�.��. &¯� �1? 241 h�f� "'G �+"/ ��2�D�.

250

8A 9B: dump database – dump transaction

no_truncateUqr�% Uq P#�:V G* h�7a OP�Q (I"B master ���Q�E� Ö×ØÙ �K- v�ì� �§�- 012O Ö×ØÙ �K- 'G.��. with no_truncate üÙ?Ö×ØÙ �Kv æYzf �? Á �E Y½2Ó master ���Q�E� 01& ���Q�Ev �� °�± Á �E Y½2� ¡å �� �K m�- �C.��.

notify = {client | operator_console}Á�Ö ÎDf �Y/ �A�.��.

• �;& �9� S�/ �C2� �; Å�� ê�  ¡ ÎDf� ¢Y Backup Serverv Æ�z� ���� �;& �9�� �ä���. dump database- 6S¿� �9� ¯ÙZ��� Backup Server ÎDf- B�34 client- 01.��.

• UNIX¨� �;& �9� S�/ �C2f �� �; Å��� ÎDfv dump database- 6S¿� `ä��Ö� �ä���. Backup Serverv Æ� �§ �9�� ÎDf- B�34 operator_console/ 01.��.

with standby_accessC�� Ö×ØÙÌ 'G2¬¹ fA.��. Ö×ØÙ� ­� C�zÓ �� 01 �§ Ö×ØÙ� ÷� v� ( f�� 'G-¦e.��.

�� 1 Ö×ØÙ �K- U�G� 'G2W init üÙ� fAzf �LZm� U�G� �+ �v.��.

dump transaction pubs2 to "/dev/nrmt0"

�� 2 mydb ���Q�E� Ö×ØÙ �K- REMOTE_BKP_SERVER Backup Server- 012O 'G.��. � Backup Server� Á �E ùù �K- uíg 'G.��. init üÙ? � U�G w� S£ �+/ ÕÃÙ��. retaindays üÙ? 14+ \ U�G- ÕÃ� ÷¬¹ fA.��.

dump transaction mydb to "/dev/nrmt4" at REMOTE_BKP_SERVER stripe on "/dev/nrmt5" at REMOTE_BKP_SERVERwith init, retaindays = 14

�� 3 inventory_db Ö×ØÙ �K �+� C�� Ö×ØÙ/ dev1Á �E� 'G.��.

dump tran inventory_db to dev1 with standby_access

251

dump transaction

�� • ! 8-2� ���Q�E� �K I6 01z� �@$ DEFG�DH- ��.��.

� 8-2: �� g�J � 6w xy� ESU?

� �m

• null Á �E� 'G� ÷x��(UNIX�� /dev/null).

• Ö×ØÙ�� dump transaction �@/ 01� ÷x��.

• 1/4§: IÖ�f U�G- 0124 U�G{ ���Q�E^Ö×ØÙ/ 2^Ì 'G� wx��.

• trunc log on chkpt ���Q�E üÙ/ 012� ��<^ selectinto/bulk copy/pllsort üÙ/ 012¬¹ �,2Ó select into, Ð��À m0 56, Á�Ö �K =�� writetext 56 ·� �µ Aµ �¼�� �K  ¡/ � �� Ö×ØÙ �K 'G- Æ�� ÷x��. K �� dump database �@/ 01.��.

��! syslogs �K U�V? delete, update, insert �@/ 01= A2f @�D�.

• ���Q�E ��� ¯K(Ö�� %¬� Á �E ���K ¯K(Öv ÷�4 dump transaction �@/ 01= �K-m02Ó truncation� ÷x��.

• 01& ·� =¦2 G�DHv dump database ·� �� dumptransaction �@� Æ� �§ ���Q�E dump transaction �@/ Æ�24 H� �@? { H� �@� C�� �ef �S.��.

• ���Q�E- m�234 load database- 01= v� �á����Q�E 'G- ��� �y load transaction/ 01= ��� Ö×ØÙ �K 'G- i�H ���� ��.��.

��u �� "!u vwdump database £¤¥� "�R \]0 ������ �& ¨@ ýpR ië��.

dump transaction £¤¥� "�R ¨@ ýp: �K *+2S T� ;<4 truncation?��.

dump transaction with no_truncate ������ ³¹��Q oò- �t2É £¤¥� "�R ýp?��.dump transaction with truncate_only� �Kdump database

ü¶2S T� "�R truncation?��.

������ �&R ñ*?��.dump transaction with no_log� �Kdump database

"� ��� ;42Ñ ��� }GQ oò- �t2É "�Rtruncation?��.������ �&R ñ*?��.

sp_volchanged Backup Server9 AB '! �SQ C?��.

252

8A 9B: dump database – dump transaction

• ª� ���Q�E �( �]/ �v ·� �<2<^ ª� ���Q�E �( �]� w� U�V/ R�� �@� �Y ���Q�E- ,- 'G.��.

��! � ���Q�E� �� 'G- ��24 ���Q�EvæY� wx��.

• 11.x Adaptive Server� 10.x Backup Server�� 'G� ÷x��.

• Sybase 'G� Sybase Ð� ���(': UNIX S¹)- l? U�G �Ú � ÷x��.

• ���Q�E �Gä§ h�fv w� ¡å� with no_log ·� with truncate_only üÙ/ 01= Ö×ØÙ/ 'G� ÷x��.

���� F¸ ¹v � � w�

• Á �E �&v �Í24 dump transaction with no_truncate-012O �K- truncation2f �Ó m0.��. �Kv %¬� ¯K(Ö wÓ master ���Q�E- ܯE� w� ¡åÌ � üÙ/ 01� wx��.

• dump transaction with no_truncate� Í�� I6� 01& �K� v� ��� 'Gi��. � ���Q�E- m�� ��� 'G- @fOZ� ��.��.

�$? � * +,� ºq S�TU�� ©/

• ���Q�E ��� ¯K(Ö�� %¬� Á �E ���K ¯K(Öv ÷�4 dump transaction with truncate_only- 012O I6 m0- 2f �Ó C�� Ö×ØÙ/ �K� R�.��.

��! dump transaction with truncate_only� ���Q�E m� ­®/ �� �C2f �x��. m� v��/ L�� w� v� Ð� S¼ dump database- Æ�2�D�.

• ��� ¯K(Ö�� %¬� Á �E �K ¯K(Öv ÷�master, model R sybsystemprocs ���Q�E� with truncate_only- 012�D�.

• ���� Ö×ØÙ �K- d+� Á �E H�2� é½ 5? ���Q�E¬ � üÙ/ 01� wx��.

253

dump transaction

• ��� 6�� 01& ���Q�E� ���Q�E ¯K(Ö�� %¬� Á �E �K ¯K(Öv w> .��.create database� log on u/ 01= %¬� �K ¯K(Öv w� ���Q�E- Í�2<^ alter database� sp_logdevice- 012O �K- %¬� Á �E� �ä.��.

»¼· ,¦§z½ ©/

• Ö×ØÙ �K- ���Q�E �= �S �§ �P� ���¸±Z� 'G234 with standby_access üÙ/ 01.��.

• with standby_access- 012O Ö×ØÙ �K- 'G2� ¡å� MN �� Ö×ØÙ� C�zÓ _ Ö×ØÙ e= w� �Ä�v ÷� �K� v� ( f�� 'G- A�.��.

• � �Y� Ö×ØÙ �K- ÑeZ� ��� � �� 0� ���Q�E- �ä§Z� �f=> 2� Y9�� í�Ddump tran[saction]...with standby_access- 01=> .��.

• with standby_access üÙZ� Í�� 'G- ��� �� onlinedatabase �@ for standby_access üÙ/ �Ú 01=� ���Q�Ev ܯE� w¬¹ �A.��.

��! Ö×ØÙ �K _ Ö×ØÙ� wÓ with standby_accessüÙ/ 01= � Ö×ØÙ/ 'G��4 11.9.2 P��� ��K- ��2Ó ���Q�E- �ä§Z� �A� �y ¦ez� Ö×ØÙ 'G- ��� ÷x��. +�� Ö×ØÙ 'G- ��� ¡å� with standby_access� �Ò 'G� �� ��^ �Å- ��� �Ì ���Q�E- �ä§Z� �A� wx��.

� º� ©/

��! dump transaction with no_log� �K C\� ,z2O +í± Ö×ØÙ �K 'G ­®(dump transaction ·� dump transaction withtruncate_only) �&v �Í� ¡å @fO ­®Z�Ì 01.��.dump transaction with no_log� ���Q�E- m�� w� ­®/�C2f �x��. �ä� ̈ y� m� v��� w� dump database- Æ�2�D�.

• dump transaction...with no_log� 'G Ö×ØÙ �'Ö- �K2f�Ó �K- R�.��. ���- �� m02f �Zm� ���Q�E �[Ì ��.��.

254

8A 9B: dump database – dump transaction

• dump transaction...with no_log 01? M )� \½zW �ä� Adaptive Server ) �K S¹���.

• ��� ¯K(Ö� %¬� Á �E t w� �K ¯K(Ö� ���Q�E- Í�2Ó Ö×ØÙ �K- &½ 'G2� @fO =¦2 G�DH- ÌtW �K R ���Q�E aÔ�C\/ �{� ¡å� � üÙ/ 01� ��v ÷x��. withno_log- 01=> 2� ¡å� 'G Q¬� �K C\� #/ ¡��.

©/ �ª«¬

• Ö×ØÙ �K 'G� p?�m� ���Q�Ev 01 �+ �Æ� v�.��. 2fÌ DEF e¬v �� ©3h wZm� ���Q�Ev $¬2© 6��Özf �/ � 'G- Æ�2�D�.

• ���Q�E- ÌN b� dump database- 012O ���Q�E �Å- m0.��. � ���Q�E�� dump database- Æ�2S � dump transaction/ Æ�� ÷x��.

• 01& ���Q�E� Ö×ØÙ �K- I62� +A/ ¯���.

• dump transaction? dump databaseB� ��� H� C\¬ o ±Ó ¸�� D\¬ o îx��. +í±Z� Ö×ØÙ �K 'G� ���Q�E 'GB� o &½ Æ����.

��ga ��3¾ dump transaction hi¿

• =¦2/ 01= I6 G�DH- &d¿.��. Adaptive Server@fO =¦2/ �1234 ��� ¯K(Ö�� %¬� Á �E� �K ¯K(Öv w� 01& ���Q�E- Ìt> .��.

• �K ¯K(Ö C\� @fO =¦2 e24 Adaptive Server� @fO =¦2 G�DH- Æ�.��. @fO =¦2 G�DH dump transaction �@/ ��Dì4 �K C\� M&äf �¬¹ BU.��. &¯� �1? sp_thresholdaction/ ��2�D�.

• sp_addthreshold- 01= H� =¦2/ �v2O �K C\/ M��ð� wx��. =¦2 �� &¯� �1? ��� �� ���- ��2�D�.

©/ ���� QD

• 'G Á �E- ���, �Å   ·� �g  � �� G�DH fA� wx��.

255

dump transaction

• �Å 'G Á �E- �y$ l� fA� wx��.

• sysdevices DEF U�V w� /�± Á �E �[

• u� ¡� �[

• Y� ¡� �[

Backup Server� Adaptive Server� "� 56 ÁßÔ�- 012O Y� ¡� �[/ L§.��.

• U�G� ÁE Á �E�� O) EÖä�G 'G� wx��. � Á �E O) 'G- Ó� S�? U�G Á �E�Ì f����.

• �ÖýÂ- �= 'G� �� 'G Á �E� u� ¡� �[/ fA=> .��. � ¡� �[? Backup Serverv Æ� �§ ���� ��=> .��. ¡� �[ þ&^ .&, ·�Êò( _ ) �Ð� �� 7&v t\ ¡å �- �+! Ó>.��.

• 'G Á �E� ¼�� R �� 7�� dump �@ 01/ ­=� wx��. sp_addumpdevice G�DH� Á �E- DEFU�V �v2fÌ K Á �E 'G� w�<^ �+/'G Á �E�� Í�� w�� ? B�2f �x��.

• �� �� 'G Á �E- 01��4 dD � �Y� 'G(·� ��)- Æ�� wx��.

B�/ ���� �h QD

• init �A& ÷� dump transaction �@/ Æ�2Ó Backup Server� Á �E ��/ fA� ÷�4 � dump transaction �@ �&v �Í.��. &¯� �1? ��� �� ���- ��2�D�.

Backup Server

• Adaptive Server¨� d+� ���� Æ�z� Backup Serverv í�D w> .��. � Backup Server� master..sysserversU�V ¸¹ w> .��. � ÀÖ�� �: ·� 6K��� � ÌtfW R�=�� ² ���.

• I6 Á �Ev �� ��� w� �ÖýÂ- �= 'G=> 2� ¡å� �Ï ��� �:� Backup Serverv w> .��.

©/ ­®

• init üÙ/ 01= �K- 'G24 U�G^ ÁE w� S£ �+/ M ÕÃÙ��.

256

8A 9B: dump database – dump transaction

• 'G �+ �[? Ø ���Q�Ev �� 'GzÈ�f #%.��. �+ �[/ fA2f �Z4 Backup Serverv �y �1/ Ñ82O Á�Ö �+ �[/ ÌX��.

• ���Q�E �[� @fO 77&

• �¬- !D2� &� .&

• ¾¿- !D2� ¯ &� .&(1–366)

• 16A � ^T� 'G �+� ÌtA D\

'- t4 cations980590E100 �+� 1993� 59+� ¾ ÌtA publications ���Q�E� 0ñ� wx��.

wz 8-3: 2noN 6w |{� }~ �� �'

• Backup Server� with notify u� fA� �:� 'G �+ �[/ �ä.��. I6 U�G- H�2S � �;&� ���Q�E �[, �+ �[, ¾¿ R ST AB- �1= ��V/Ìt> .��. #% ��V� ÷� U�G- ��� ��with headeronly� with listonly üÙ/ 012O �1/ fA.��.

¯° �G

• 'G ê�? ANSI U�G ��V !X ��V/ ÌX��. ���V� /�± ê� HU� EÖä�G s. ��� Á �E �:v �����.

cations 93 059 0E100

�������� ��

�� 7 � �� ��

�� ( � )�� �� � ���

257

dump transaction

• �� D Backup Server� U�G ��V/ 012O ê�� ? � ¶��� ?3³ w�f L§.��. �J© 24 'G DB� o ±? � Á �E� ��� wx��.

�� �ÖýÂ- �= 'G R ��� �� ù 56@� l? � EÖä�G Á �E- fA=> .��.

©/ ¯° �A

• UNIX ���2�* U�G 1À ¬P`/ � Backup Server� ê�  ¡/ �;.��. · �� ê�/ ? � �;&�Backup Server� ��� v�� Adaptive Server� sp_volchanged DEF G�DH- Æ�2O Backup Server �B.��.

• "� ?3A ê�� �F� ê�/ ?�� *� 7��/ �ù24 Backup Server� ̀ ä��Ö ·� �;& ÷�� ÎDf- �ä2O ê�  ¡/ �;.��. �;&� sp_volchanged DEF G�DH- 012O � ÎDf ¤!.��.

¯° �� �q ±²³(

• Sñ±Z� (noinit) Backup Server� d+� U�G ê� ¦e=� 'G- Í�2O Ó1À U�G �Å- �$±Z� 01.��. ���� U�G ô� @ �y �v���. � 'G��� ê� 'G� �� ê�Ì �v� wx��. U�GûS � Backup Server� { H� �+� éb Ì�zf �L�f L§.��. � U�G Sybase Ð� ���v w� ¡åBackup Server� � U�G- <,2O ��� AB� æY/Ox��.

• init üÙ/ 012O ê�/ �D 6S¿.��. init- fA24Backup Server� U�G Sybase Ð� ���v w<^ { H� �+� Ì�zf �L<^ U�G ANSI ܯE �� 0¢� w¬ S£ �1/ M ÕÃÙ��.

• K8 8-2� �y �7/ 012O ¯ Ö×ØÙ �K- 2^� ê� 'G2� ­®/ ��.��. �y$ lx��.

• init� { H� 'G1 U�G- 6S¿

• noinit(Á�Ö)� ¦ez� 'G �v

• unload� @fO 'G � U�G- zÍé ���

258

8A 9B: dump database – dump transaction

wz 8-4: C 2noN 6w5 � ��� |{

µ¶· ����� �x· � ©/

• dump transaction D5 D Adaptive Server� MN /� �K Á �E� Primary Á �E �[/ Backup Server� �P.��. PrimaryÁ �Ev 9) =�� ¡å Adaptive Server� secondary Á �E �[/ �P.��. Backup Serverv ��� �ä/ C�2S� �[� fA� Á �E �&v �Í24 Adaptive Serverv 'G- _¼.��.

• dump transaction A� � 01&v �[� fA� �K Á �E� 9)- =�23Ó 2� ¡å Adaptive Server� ÎDf-!D.��. disk unmirror �@/ Æ�� 01&� 'G- _¼2<^ � 'Gv C�� �ef disk unmirror- fÑ� wx��.

• dump transaction with truncate_only� dump transaction with no_log�Backup Server- 012f �x��. Á �E �& ̂disk unmirror�@Z� §= �K Á �Ev 9) =�� ¡å¬ � �@? ;</ $f �x��.

• dump transaction? �K ¯K(ÖÌ m0.��. Á �E �&^ disk unmirror �@Z� §= ��� �1 Á �Ev 9) =�� ¡å¬ � �@? ;</ $f �x��.

56

init; ��4x����

mydb����:{|V}����

/dev/nrmt4` z_

yourdb����:{|V}����

/dev/nrmt4` z_unload; ��4xpubs2 :{|V}/dev/nrmt4` z_

�# $% "#SQL92 Transact-SQL ÎÍ

259

dump transaction

7� DEF ��&, �;& T(role)/ vA 01&� ���Q�E ¼�&Ì dump transaction/ Æ�� wx��.

89 �� – dump database, load database, load transaction, online database

��� ���� – sp_addumpdevice, sp_dboption, sp_dropdevice,sp_helpdevice, sp_logdevice, sp_volchanged

260

9 ���� ��: execute – group by having

execute�� G�DH- Æ�2<^ Transact-SQL �@/ d±Z� Æ�.��.

�� [exec[ute]] [@return_status = ][[[server .]database.]owner.]procedure_name[;number]

[[@parameter_name =] value | [@parameter_name =] @variable [output]

[,[@parameter_name =] value | [@parameter_name =] @variable [output]...]]

[with recompile]

·�

exec[ute] ("string" | char_variable [+ "string" | char_variable]...)

���� execute | exec �� G�DH ·� L� �� G�DH(ESP) Æ� 01���.�� G�DH U�� { H� 7: �7� E� ¡åÌ ��.��.

@return_status�� G�DH� return Y� Ä�- H�2� üÙ A   i��. execute 7� 01zS � 7: ·� �� G�DH� (H ��z> .��.

server�Ï �P� �[i��. �� Adaptive Server- 012Ó ={���Q�E� G�DH- Æ�� ��� w� �, ={ �P� G�DH- Æ�� wx��. �P �[Ì fA2Ó ���Q�E �[? fA2f �? ¡å Adaptive Server� Á�Ö���Q�E� G�DH- èx��.

database���Q�E �[i��. G�DHv �� ���Q�E w� ¡å ���Q�E �[/ fA2�D�. database� Á�Ö2? "� ���Q�Ei��. �� ���Q�E� ¼�&�<^ ={ ���Q�E� G�DH- Æ�� ��� w� �,={ ���Q�E� G�DH- Æ�� wx��.

261

execute

ownerG�DH ¼�&� �[i��. ¼�& �[� G�DHv � �Y ���Q�E £�2� ¡å ={ �[/ fA2�D�.owner� Á�Ö2? "� 01&i��. ¼�& �[? ���Q�E ¼�&("dbo") ·� "� 01&v G�DH- ¼�2Ó w� ¡åÌ �, 0¢i��.

procedure_namecreate procedure 7Z� A�� G�DH �[i��.

;numberd+� �[� G�DH- Kï¿2� � 01z� üÙ A ��p+ drop procedure 7Z� M R�� wx��. d+� ¤1G�K¥ 01z� G�DH� BB � ­#Z� Kï¿���. '- t, ordersä� ¤1 G�K¥ 01z� G�DH��[� orderproc;1, orderproc;2 *Z� fA� ¡å �7? �y$ lx��.

drop proc orderproc

�Å Kï/ R�.��. G�DHv Kï¿z4 Kï �� ù G�DH- R�� ÷x��. '- t4, �y �7/ Æ�� ÷x��.

drop procedure orderproc;2

parameter_namecreate procedure 7 A�� G�DH �� §&� �[i��.�g  �[? @ SU � �> .��.

"@parameter_name = value" �#� 01� ¡å �g  �[$Y � create procedure 7� A�� ¶�� �Czf �é¬ ���. 2fÌ � �#� Ø �g  �= 01� ¡å ���MN �g  �=�¬ � �#� 01z> .��.

valueG�DH 2 ·� G�DH �� §&i��. "@parameter_name= value" �#/ 012f �/ ¡å create procedure 7� A��¶�� �g  2/ �C=> .��.

@variablereturn �g  H� 01z�   � �[i��.

output�� G�DHv return �g  - return�/ ^T���. ��G�DH� +: �g  ¬ output ìý�� Í�z> .��.

output ìý�� (� out/ 01� wx��.

262

9A 9B: execute – group by . having !

with recompile��� ¦�� ��+/ )�� �.��. �C� �g  v+í±�f �<^ ���v ¬2©  ¡� ¡å � üÙ/ 012�D�.  ¡� ¦�? ��� Æ�� 01���. ESP- Æ�� � Adaptive Server� � üÙ/ �D.��.

stringÆ�� Transact-SQL �@� +,Ô/ ��2� ��� 7&_i��. ��� 7&_� �Cz� 7&� � ��� ÷x��.

char_variableTransact-SQL �@� àEÖ- �C2�   �[i��.

�� 1 �y� ¯ '�� M �g  2 titles� �� G�DHshowind- Æ�.��.

execute showind titles

·�

exec showind @tabname = titles

·� 7:^ �+� �+� 7§ ¡å

showind titles

�� 2 �Ï �P GATEWAY� �� G�DH checkcontract- Æ�.��. �C ·� �&- ^T�� return Y�- @retstat H�.��.

declare @retstat int execute @retstat = GATEWAY.pubs.dbo.checkcontract "409-56-4008"

�� 3 3g� �g  - �P2� �� G�DH roy_check- Æ�.��. ¯ H� �g  @pc� output �g  i��. �g  Æ� � return 2?   @percent� 01 v�.��.

declare @percent int select @percent = 10 execute roy_check "BU1032", 1050, @pc = @percent output select Percent = @percent

�� 4 � G�DH� 01&v �g  - �C2f �? ¡å DEF U�V �� AB- !D.��.

create procedure showsysind @table varchar(30) = "sys%" as select sysobjects.name, sysindexes.name, indid

263

execute

from sysindexes, sysobjects where sysobjects.name like @table and sysobjects.id = sysindexes.id

�� 5 "Hello World!" 2/ �P2� L� �� G�DH xp_echo-Æ�.��. L� �� G�DH� return� 2? resultä�   H����.

declare @input varchar(12), @in varchar(12),@out varchar(255), @result varchar(255)

select @input="Hello World!"execute xp_echo @in = @input, @out= @result output

�� 6 @fO execute �@? 7&_ 2$ 7&   - Ñ82O �y$ l? Transact-SQL �@/ Æ�.��.

select name from sysobjects where id=3

declare @tablename char(20)declare @columname char(20)select @tablename="sysobjects”select @columname="name"execute (’select ’ + @columname + ’ from ’ + @tablename + ’ where id=3’)

�� 7 �y$ l� �� G�DH sp_who- �.��.

declare @sproc varchar(255)select @sproc = "sp_who"execute @sproc

�� • G�DH 8$� Æ�z� ���Q�E �ä Päh wx��. '- t, db_name() DEF � - Æ�2� 01& A�DEF G�DH sp_foo� Æ�z� ���Q�E �[/return.��. pubs2 ���Q�E� Æ�� ¡å "pubs2" 2/ return.��.

exec pubs2..sp_foo------------------------------ pubs2 (1 row affected, return status = 0)

sybsystemprocs� Æ�� ¡å "sybsystemprocs" 2/ return.��.

exec sybsystemprocs..sp_foo------------------------------ sybsystemprocs (1 row affected, return status = 0)

264

9A 9B: execute – group by . having !

• �g  - �C2� ­®� vfv w�� �: ��­®$ �y/ �12� ­®i��.

@parameter_name = value

H� ­®/ 01� ¡å create procedure 7 A�� ¶��� �g  - �C� ��v ÷x��.

output ìý�- 012Ó 7: ·� G�DH� �v �7�return �g  - 0123� ¡å �g  � 2?   � �Pz> .��. '- t4 �y$ lx��.

parameter_name = @variable_name

L� �� G�DH- Æ�� ¡å MN �g  - �[ ·�2Z� �P2�D�. ESP �� p+ execute �@� 2�� �g  � �[ �� �g  - %12O 01� ÷x��.

• ·� exec(@parameter_name)� Dynamic SQL 7¬ ��2fÌì r[� o ��� wx��. '- t Dynamic SQL �@exec(@sproc ="7")� A 2 7/ G�DH �P2fÌ ì r[� ±? exec @sproc 7� �� wx��.

• text R image _/ �� G�DH �� �g  ·� �g  �Pz� 2Z� 01� ÷x��.

• create procedure 7� return �g  � A�zf �? �g  �= output/ fA2� G�DH- Æ�2� ? )i��.

• output/ 012O �� G�DH Y - �P� ÷x��.return �g  �   �[� ��.��. G�DH- Æ�2S �   � ��� ��/ ��2Ó 2/ �{=> .��.return �g  � text ·� image ��� ��/ vh ÷x��.

• �7� 7:� { H� �7+ ¡å execute ìý�- 01� ��v ÷x��. 7:� �Ò �� "go" p� ô^� i� �+� ¯K(Öi��.

• G�DH �� Æ� ¦�? ¨y Æ�� � H�zm� d+� (¡ �7 s.+ ¡å �y Æ�z� D\� îés��.

265

execute

• ��? � �� G�DHv �� �� G�DH- U�� � �Í.��. �� X? U�� G�DHv Æ�/ D5� � Kv2Ó U�� G�DHv Æ�/ C�� � ͼ���. ��16g �� X/ 6$� ¡å Ö×ØÙ �&v �Í.��."� �� X? @@nestlevel �«   H����.

• return 2 0 R -1,� -14� �� G�DH� Æ� Y�- ^T�S �= "� Adaptive Server �= 01zÓ wx��. -15,� -99� ^� 01/ �= '(z wx��. 2 ¸¹?return/ ��2�D�.

• �g  � Ö×ØÙ� +,v é�m� �g  v ^� TI(rollback)� Ö×ØÙ�  ¡� ¡å K 2? ��� 2Z� m�zf �x��. U�&© returnz� 2? ¢Y G�DHv return2� D�� 2i��.

• create procedure 7� select *- 01� ¡å with recompile üÙ/ 012O Æ�2oä¬ G�DH� U�V �v� ���_/ �,2f �x��. G�DH- drop2Ó �D Í�=> .��.

• �Ï G�DH U�/ �= Æ�� �@? TI(rollback)� ÷x��.

• with recompile üÙ? Adaptive Serverv L� �� G�DH-Æ�� ¡å �D���.

Transact-SQL i= 12

• string ·� char_variable üÙ$ �Ú 01� � execute� �C� 7&_$   - Ñ82O Í�z� Transact-SQL �@/ Æ�.��. � �#� execute �@? SQL 7:, G�DH R Ö�<� 01� wx��.

• string$ char_variable üÙ/ �C2O begin transaction, commit,connect to, declare cursor, rollback, dump transaction, dbcc, set, use ·� ��� execute �@/ Æ�� ÷x��.

• create view �@? execute()- 012O fA� wfÌ SQL7:�Ì v�.��. create view� G�DH� execute()�� A± �@ ·� 7&_ �g  � 01� ÷x��.

• string ·� char_variable üÙ� �1? SQL 7: ·� G�DH� ��� �Å   - ��� ÷x��.

266

9A 9B: execute – group by . having !

• string R char_variable üÙ� Ñ8z ��� U�V/ Í�� wx��. 2fÌ d+� SQL 7: ·� G�DH ��execute()� Í�� U�V? �� execute() �@Ì Bi��.SQL 7: ·� G�DHv C�� � d±Z� Í�� U�V? fezÓ �� �@ Bi��.

56

7� execute ��? Á�Ö� G�DH� ¼�&© wZW ��/ �� 01&© #¬� wx��.

string ·� char_variable üÙZ� A�� Transact-SQL �@ Æ���? ={ �@/ Æ�2� 01&- L§.��. � ? �� 01&v ¼�2� G�DH ·� Ö�< �� A�� execute()§ ¡å¬ ±1���.

89 �� – create procedure, drop procedure, return

��� ���� – sp_addextendedproc, sp_depends, sp_dropextendedproc, sp_helptext

fetch�� Ä� 8$ set� +�� � ·� � �/ return.��.

�� fetch cursor_name [ into fetch_target_list ]

���� cursor_name�� �[i��.

into fetch_target_listÄ� 8$v ~Of� �g  ·� �Å   ¸¹�W y@��Ô���. �g  R   � fetch �� ��z> .��.

�� 1 authors_crsr � �= A�� � 8$ set� AB �/return.��.

fetch authors_crsr

�� 2 pubs_crsr Ä� �= A�� Ä� 8$ set� AB �/   @name, @city R @state� return.��.

fetch pubs_crsr into @name, @city, @state

�# $% "#SQL92 Transact-SQL ÎÍ

267

fetch

�� � �m

• fetch- 01234 Ä�- ��2Ó open=> .��.

• cursor_name? Transact-SQL �g  ·� �Å   v � ÷x��.

• �9 fetch� �/ fetch� ÷x��. 8$ set/ �= �D �� � ÷x��. K)^ Ä�- §Ó �D _ Ä� 8$ set/ �D Í�2Ó ¨y,� D5� wx��.

• Adaptive Server� fetch_target_list�   � Ä�- A�2�select_statement �= fA� �Y ¸¹ !"#� 1� 1� �¤z� Z� §#.��.   ·� �g  � ��� ��? Ä� 8$ set _� ��� ��$ U³z> .��.

• ÑË Ö×ØÙ M�� �A24 Adaptive Server� Ö×ØÙ�"� Z�¿zf �? ¡å fetch 7Z� Ö×ØÙ/ ^D±Z�D5.��. 2fÌ � Y9? close on endtran üÙ/ �A2Ó & ¨y Ä�- Ñ Ö×ØÙ� B�� �¬ Ä�v _ Y�+ �Ì �Í.��. �ä� open 7¬ Ö×ØÙ/ &dZ� D5.��.

¢P 4"

• MN �/ fetch� � Ä�� 8$ set� @fO �/ v�*��.fetch- �D � ¡å Adaptive Server� o �Y ���v ÷y/^T�� @@sqlstatus- �= ¡Ó- return2Ó Ä� �:�8$ set� ô/ f^ �d.��. � Ä� �:�� o �Yupdate ·� delete- �� ÷x��.

• fetch into- 01� � fetch_target_list�   v Ä�- A�2� ¾� �= fA� �Y ¸¹ !"#� � +:2f �é )v �Í� ¡å Adaptive Server� Ä� �:- ¢Z� �d2f �x��. 2fÌ   � ��� ��$ Ä� 8$ set _� ��� �� 0� U³� )v �Í=¬ Ä� �:v ¢Z� �dzf �x��.

fetchÀq 2 � rD

• � H � � �Y/ fetch� wx��. set �@� cursor rowsüÙ/ 012O fetch� � - fA� wx��.

268

9A 9B: execute – group by . having !

fetch� #� D' {(

• @@sqlstatus �«   � fetch 7� Æ�Z� Í�z� Y� AB(¡Ó 'Ð)- ��.��. @@sqlstatus� 2? 0, 1 ·� 2�W ! 9-1$ lx��.

� 9-1: @@sqlstatus �

fetch 7Ì @@sqlstatus- �A� wx��. �� 7? @@sqlstatus �� ;<�� ÷x��.

• @@rowcount �«   � @fO fetchef Ä� 8$ set�`ä��Ö� return� � �� AB- ��.��. Ú, Ø D�� `ä��Öv ñ �� - ^T���.

MN �� Ä� 8$ set� ø�)Z4 @@rowcount� Ä� 8$ set �� - ̂ T���. ù _ Ä�� jA @@rowcount  � Ñ�z wÓ �   � Ä�- §/ � R����. ={ fetch� fA� Ä� �= ø? � - áZ34 fetch � @@rowcount- L§2�D�.

56

7� fetch ��? Á�Ö� MN 01&v vs��.

89 �� – declare cursor, open, set

goto Label�� 01& A� ��V� ÔS.��.

�� label: goto label

restartä� ��V� 01/ BO ���.

0 fetch F9 ���� $ªR 5�L��.

1 fetch F MÀ Z Qï- �t�K4 5�L��.

2 ¿V setQ @ �d ���- åK4 5�L��. ®Å »² w§- ¿V set9 gSv ÀQ J� ����£- 0� »²Q c0 fetch F4 NÖO !ã � !�- �t?��.

�# $% "# ��

SQL92 +£ (� >* cd | 9 '( *+ D Ñï À9 fetch� Transact-SQL ÎÍ.��.

269

grant

declare @count smallint select @count = 1 restart: print "yes" select @count = @count + 1 while @count <=4 goto restart

�� • ��V �[? #%&� õö/ X => 2Ó ��� ¡å úÖ(:)� â> .��. goto� �Ú 01� ¡å� úÖ� âf�x��.

• goto� label 0�� ô÷� �G- 234 gotov if ·� whileÝ0 ·� ST �� �] Bez¬¹ Ìt> .��.

56

7� goto ��? Á�Ö� MN 01&v vs��. �ä� %¬� ��� ��2f �x��.

89 �� – if...else, while

grant�� 01& ·� 01& A� T(role) ��/ �{.��. 01& ·�

DEF, 01& A� T(role) T(role)/ �{.��.

�� ���Q�E ŠܯE ��/ ,O234

grant {all [privileges]| permission_list} on { table_name [(column_list)]

| view_name[(column_list)] | stored_procedure_name}

to {public | name_list | role_name}[with grant option]

jA �@ � ��/ ,O234

grant {all [privileges] | command_list} to {public | name_list | role_name}

01& ·� T(role) T(role)/ ,O234

grant {role role_granted [, role_granted ...]}to grantee [, grantee...]

�# $% "#SQL92 Transact-SQL ÎÍ

270

9A 9B: execute – group by . having !

���� all���Q�E ŠܯE �� �{ 01� ¡å({ H� �7�#) all? fA� Å ±1 v�� MN ��� ,Oz¬¹ fA.��. MN Å ¼�&� Å �[$ �Ú grant all/ 012O &�� Å �� ��/ ,O� wx��.

DEF ��& ·� ���Q�E ¼�&Ì ���Q�E ÅÍ� ��/ �{� wx��( H� �7 �#). DEF ��& �= 01� ¡å grant all? MN create ��(create database,create default, create procedure, create rule, create table, create view)/�{.��. ���Q�E ¼�&v grant all/ 0124 AdaptiveServer� create database- �Ð� MN create ��/ ,O2Ó AB ÎDf- §Ë.��.

all fA� set proxy ·� set session authorization Æ� ��� ��zf �x��.

permission_list,O� ŠܯE �� ̧ ¹i��. � �Y� ��/ ̂ _� ¡å y@� �Ô.��. �y !� ù Å �� ,O� w�ܯE ��i��.

bc permission_list) ~E ��< d<��A select, insert, delete, update, references

Ù select, insert, delete, update

� select, update, references� ��# permission_list q� column_listQ SXD ( JU��("N 2 ��).

6Í p"�Ì execute

271

grant

command_list01&v Æ�� w� �@ ¸¹i��. � �Y� �@/ ^_� ¡å y@� �Ô.��. �@ ¸¹� create database, createdefault, create procedure, create rule, create table, create view, set proxy,set session authorization *� ��� wx��.

create database ��? DEF ��& �=�Ì ,O� wÓmaster ���Q�E ��Ì v�.��.

DEF B² �{&Ì 01&© set proxy ·� set sessionauthorization Æ� ��/ ,O� wx��. set proxy ·� setsession authorization Æ� ��/ ,O� ¡å ,O&v �P� �� �K§/ 01� wx��. set session authorization?ANSI92 !X/ �[Ó set proxy� Transact-SQL L��ä� �/�Ð24 set proxy� set session authorization? d+.��.

table_name��/ ,O2� U�V� �[i��. U�V? "� ���Q�E w> .��. ù grant 7� �b 2^� ÅÌ ^_� wx��.

column_list��� ±1z� y@� �Ô� _ ¸¹i��. _� fA� ¡åselect, references, update ��Ì ,O� wx��.

view_name��/ ,O2� �� �[i��. �� "� ���Q�E w> .��. ù grant 7� �b 2^� ÅÌ ^_� wx��.

stored_procedure_name��/ ,O2� �� G�DH� �[i��. � �� G�DH� "� ���Q�E w> 2W ù grant 7� �b 2^�ÅÌ ^_� wx��.

publicMN 01&i��. ŠܯE ��� ¡å public� Å ¼�&v �Ð���. Å Í� �� ·� set proxy Æ� ��� ¡åpublic� ���Q�E ¼�&v �Ð���. "public" ·� �� Kï/T(role) �=�� with grant option$ �Ú ��/ � � ÷x��.

name_listy@� �Ô� 01&� ���Q�E �[ R/·� Kï �[ ¸¹i��.

272

9A 9B: execute – group by . having !

with grant optionname_list fA� 01&v �� 01&© ŠܯE ��/ ,O� wx��. with grant option ��? "public" ·� Kï/T(role)� é: g§ 01&©Ì ,O� wx��.

role01& ·� DEF/01& A� T(role) T(role)/ ,O.��.

role_granted DEF B² �{&v 01&^ T(role) ,O2� DEF ·�01& A� T(role)� �[i��.

granteeT(role)� ,Oz� DEF T(role), 01& A� T(role) ·� 01&� �[i��.

role_name��� ,Oz� DEF ·� 01& A� T(role)� �[i��.

�� 1 Mary� "sales" Kï titles U�V �= insert R delete �@/ 01� w� ��/ ,O.��.

grant insert, deleteon titlesto mary, sales

�� 2 titles U�V� price R advance _ �= update ��/ "public"(MN 01& ��) ,O2� vf ­®i��.

grant updateon titles (price, advance)to public

·�

grant update (price, advance)on titlesto public

�� 3 �P� �� 01&- �� 01� w� set proxy ·�set session authorization Æ� ��/ Harry� Billy© ,O.��.

grant set proxy to harry, billy

�� 4 sso_role ��� w� 01&© set proxy ·� set sessionauthorization Æ� ��/ ,O2O �P� �� 01&- 01� w¬¹ .��.

grant set session authorization to sso_role

273

grant

�� 5 vip_role ��� w� 01&© �P� �� 01&- 01� w¬¹ .��. vip_role? DEF B² �{& �= createrole �@Z� A�� T(role)�> .��.

grant set proxy to vip_role

�� 6 Mary� John© create database R create table �@/ 01� w� ��/ ,O.��. create database �� ,O �@? master���Q�E �� DEF ��& �=�Ì Æ�� wx��. Mary� John� create table ��? master ���Q�EÌ ±1���.

grant create database, create tableto mary, john

�� 7 titles U�V �� C�� ܯE ��/ MN 01&©,O.��.

grant all on titlesto public

�� 8 "� ���Q�E� MN Å Í� ��/ MN 01&© ,O.��. � �@� master ���Q�E� DEF ��& �= Æ�� ¡å OS� create database ��� �����.

grant allto public

�� 9 Mary© authors U�V �= update �@/ 012Ó ={ ��/ �� 0�© ,O� w� ��/ ,O.��.

grant update on authorsto marywith grant option

�� 10 Bob© titles U�V� price _ �= select R update �@/ 012Ó ={ ��/ �� 0�© ,O� w� ��/ ,O.��.

grant select, update on titles(price)to bobwith grant option

�� 11 new_sproc �� G�DH- Æ�� w� ��/ MN DEF B² �{&© ,O.��.

grant execute on new_sprocto sso_role

�� 12 James© titles U�V� price _/ ��2� �� U�V�� �� integrity constraint Í� ��/ ,O.��.

274

9A 9B: execute – group by . having !

grant references on titles(price)to james

�� 13 "specialist" T(role)/ ={2� MN ��$ �Ú "doctor"T(role) ,O.��.

grant role specialist_role to doctor_role

�� 14 "doctor" T(role)/ Mary© ,O.��.

grant role doctor_role to mary

�� • grant 7� p from/ to �� 01� wx��.

• ! 9-2� Adaptive Server� Transact-SQL �@ �� Á�Ö ��/ �(� i��. "Á�Ö ,O&" ��þ éÒ ^_� 01&� ={ �@ Æ� ��� &dZ� ,Oz� v�x? X� 01&i��. � 01&� ��� #¬ v�� ¡å ={ ��/ grant ·� revoke� wx��. Á�Ö ,O&B� o t? X� 01&� ��� &dZ� �{z<^(���Q�E ¼�&� ¡å) setuser �@/ 012O ��/á/ wx��.

'- t, ���Q�E ¼�&� �� 01& �= ¼��Å �� ��/ &dZ� á/ ÷x��. ���Q�E¼�&� setuser �@Z� Å ¼�&� ��/ á? �y ±{� grant ·� revoke 7/ Æ�.��. DEF ��&� ��ä¬MN �@ R Å �� ܯE ��/ vs��.

Adaptive Server �: E¡Ö� Á�Ö Kï "public" +,��/ �{.��. �)� �� �= grant R revoke 7/ Í�� ��v ÷x��.

! 9-2� DEF B² �{&v ��z wf �x��. DEF B² �{&� jA DEF G�DH- �Ð2Ó �@ �� j%� ��/ vff �x��.

� 9-2: � �� ��

��

89: ��x� d< �x/�� ��

aB� �O� ���

jky

B �C�bc

�C�

public(�� ���) �

�� �� PQ

alater database • (1)alter role •

alter table • •begin transaction • •

checkpoint • •

275

grant

commit • •

create database • •create default • •

create index • •create procedure • •

create role •create rule • •

create table • (2) • (2)create trigger • •create view • •

dbcc ��Q �� �E��. � ú�²9 dbccR ��2n�o. •delete • (3) •

disk init • •disk mirror •

disk refit •disk reinit •

disk remirror •disk unmirror • •

drop (·Ê Ð&) • •dump database • • •

dump transaction • • •execute •(4) •grant (Ð&Q c0) • •

grant �� • •insert • (3) •

kill • •load database • • •

load transaction • • •print • •

raiserror • •readtext • (5)

revoke(Ð&Q c0) • •revoke �� • •

rollback • •

��

89: ��x� d< �x/�� ��

aB� �O� ���

jky

B �C�bc

�C�

public(�� ���) �

�� �� PQ

276

9A 9B: execute – group by . having !

• "� ���Q�E� Å �=�Ì ��/ ,O� wx��.

• �� 01&� U�V/ ��2� �� integrity constraint- ��2� U�V/ Í�2S � ��z� ={ U�V ��references ��/ ,O$é> .��('� 10 ��). U�V? ��z� _ �= unique �( �] ·� unique §iE¬ ��=> .��. �� integrity constraint �� �v AB� createtable/ ��2�D�.

• grant R revoke �@? ¶� ;</ $x��. ab� w/ ¡å ��/ �Í2� �@? v� �á Æ�� �@i��.

• 01&� G�DH ·� � �= ��z� Å �� ��/ vfÓ wf �é¬ � ·� �� G�DH �� ��/ ,O$/ wx��. &¯� �1? ��� �� ���- ��2�D�.

• Adaptive Server� declare cursor 7� ��z� SX U�V�^ � �= A�� �� Y�÷� MN 01&© Ä��� ��/ ,O.��. Ä�� Adaptive Server Å(U�V*)� A�zf �Zm� ��? Ä� �= ±1� ÷x��. 01&v Ä�- _ ¡å Adaptive Server� ={ Ä�� 8$ set/ A�2� Å �= 01&v select ��/ vfÓ w�f «p.��. Ä�v _� �@� ��/ L§.��.

save transaction • •

select • (3) •set • •

setuser • •shutdown • •

truncate table • •update • (3) •

update all statistics • •update partition statistics • •update statistics • •

writetext • (6)

��

89: ��x� d< �x/�� ��

aB� �O� ���

jky

B �C�bc

�C�

public(�� ���) �

�� �� PQ

277

grant

01&v Ä� �= A�� Å �� ܯE ��/ vfÓ w/ ¡å Adaptive Server� Ä�- _Ó 01&v Ä�- �= � ���- fetch� w¬¹ .��. Adaptive Server� ùfetch �= �� L§/ ±12f �x��. 2fÌ 01&v={ Ä�- �= delete ·� update- �� ¡å Ä� 8$ set� ��z� Å� ��� R� R 6��Ö �= +í±§ �� L§� ±1���.

• grant 7? ��/ $? ù 01&, Kï ·� T(role) �� sysprotects DEF U�V � �/ �v.��. �� 01&^ Kï� ��/ revoke� ¡å Adaptive Server� sysprotects� �/ R�.��. ��� ,O� �Å Kï� é: �,�Kï ����Ì ��/ _¼� ¡å Adaptive Server� �Ò�/ �f2Ó _¼ �� ��� �/ �v.��.

• 01&v Kï� ����ä� *,Z� jA ��/ Ye$Ó d+� ��� ={ 01&© �D±Z� ,O� ¡å sysprotects� �� �vzf �x��. '- t, "public"� authors U�V� phone _ �= select ��/ ,O$? �y "public"����§ John� authors� MN _ select ��/ ,O$Lx��. John �� grant� 8$� sysprotects �v� �? �9��/ vfÓ w� phone _/ �Ð2Ó authors U�V� MN_ �� ��- ��.��.

• create trigger �@ Æ� ��? Sñ±Z� 01&© �C���.01&� Ö�< Í� ��/ _¼24 ={ 01&� sysprotectsU�V revoke �� �v���. ={ 01&© create triggerÆ� ��/ ,O234 H� grant �@/ Æ�=> .��.{ H� �@? sysprotects� revoke �/ R�2Ó H� �@? grant �/ ci.��. Ö�< Í� ��/ _¼24 01&� &�� ¼�� U�V�¬ Ö�<- Í�� ÷ZW� ? revoke �@� Æ�� ���Q�EÌ ={���.

• �y DEF G�DH� �� �� AB- á/ wx��.

• sp_helprotect� ���Q�E Å ·� 01& �� ��AB- BÓ.��.

• sp_column_privileges� U�V ·� �� 2^ �Y� _�� �� AB- BÓ.��.

• sp_table_privileges� U�V ·� �� MN _ �� ��AB- BÓ.��.

278

9A 9B: execute – group by . having !

• sp_activeroles� Adaptive Server� "� �K§ ¯Ù ��MN Z� T(role)/ !D.��.

• sp_displayroles� �� T(role) ,O� MN T(role)/ !D2<^ ! �#Z� _� �Å ¦\ Ö�- BO ���.

grant all �j vZ 7�

• Å �[� é: 01& ·� Kï �[Ì 01� ¡å grant all?create database, create default, create procedure, create rule, createtable, create view ��/ �{.��. create database ��?master ���Q�E �� DEF ��& �=�Ì ,O� wx��.

• ���Q�E ¼�&� DEF ��&Ì Å �[ ÷� grant all7/ 012O 01&^ Kï create �@ ��/ ,O� wx��. grant all �@� ���Q�E ¼�& �= 01� ¡å DEF ��&Ì create database ��/ ,O� w�� AB ÎDfv �����. � ^_� ST MN ��? ,O���.

• MN Å ¼�&� Å �[$ �Ú grant all/ 012O &�� Å �= ��/ ,O� wx��. 01& ·� Kï �[ R U�V ·� � �[$ �Ú 01� ¡å grant all? U�V �� delete, insert, select, update ��/ 31.��.

grant with grant option ~�

• "public" ·� Kï�^ 01&© with grant optionZ� ��/,O� ÷x��.

• �� ,O� DEF ��&� Å ¼�&� _É���. DEF ��&v �� 01&� Å ��/ ,O� ¡å ¼�& �[? sysprotects� sp_helprotect ��� ,O&� ^T>��.

• ù grant �� AB� �y 'Ð 0¢$ �Ú DEF U�Vsysprotects �f���.

• jA ��� d+� ,O& �= 01&© H �Y,O� ¡å Adaptive Server� AB ÎDf- !D.��.{ H� grantÌ �f���.

• g� grant � 2^v with grant optionZ� ,O� �Ì �Ð2Ó C�k d+� ¡å grant with grant optionÌ �f���.

279

grant

• g� grant 7� jA 01&© jA U�V �= d+� ��/ ,O2Ó grant 7 fA� _Ì �- ¡åAdaptive Server� �)� grant 7/ 2^� �7Z� _É.��. '- t, �y grant 7? d+.��.

grant select on titles(price, contract) to keikogrant select on titles(advance) to keikogrant select on titles(price, contract, advance)to keiko

/Á� ) *z . þ

• set proxy ·� set session authorization Æ� ��/ ,O24 ,O&v Adaptive Server� �� �K§/ �� 01� wx��. set proxy� set session authorization? � vf �Ì �Ð2Ód+.��. Ú, set session authorization? SQL !X/ �[Ó setproxy� Transact-SQL L�i��.

• set proxy ·� set session authorization ��/ ,O234 DEFB² �{&O> 2Ó master ���Q�E w> .��.

• grant set proxy �@ fA2� �[? ���Q�E� ±.� 01&O> .��. Ú, ={ �[� ���Q�E� sysusersU�V £�=> .��.

• grant all� set proxy ·� set session authorization ��� ��z wf .34!.

>(role)� 7� þ

• grant �@/ 012O fA� T(role)� ,O� MN 01&© ��/ ,O� wx��. T(role)? sso_role�^ sa_role$l? DEF T(role) ·� 01& A� T(role)� � wx��. 01& A� T(role)� ¡å DEF B² �{&� create role�@/ 012O T(role)/ Í�=> .��.

2fÌ grant execute ��? fA� T(role)/ vfÓ wf �?01&v �� G�DH- Æ�� ��/ g§±Z� ,O$fF2¬¹ � ÷x��. '- t, DEF B² �{&Ì ��G�DH Æ� ��/ ,O$¬¹ 234 �� G�DH &Å�� proc_role DEF � - 01.��. U� 01&v G�DH- Æ�� ±u� ��/ v)�f L§.��. &¯� �1? proc_role/ ��2�D�.

280

9A 9B: execute – group by . having !

• T(role) ,O� ��? 01& ·� Kï ,O� ��B�¢+��. '- t, John© DEF B² �{& T(role)� ,OzÓ sso_role sales U�V �� ��/ ,O$L�Ó vA= B,x��. sales �� John� g§ ��� _¼� ¡å¬ T(role) ��� g§ �� ¢�m� ¦e sales ܯE� wx��.

��h ) ��h Ä

• 01& Kï? p+ �7Z� 01& �Y© ��/ grant·� revoke2¬¹ .��. ù 01&� �b � Kï� ���Ì� wZW ¢Y "public"� ���i��.

• ���Q�E ¼�& ·� DEF ��&� sp_adduser� ��� 01&- �v� wÓ sp_addgroupZ� Kï/ Í�� wx��. 01&© Adaptive Server �K§� w¬¹ 2O��� ��Z� ���Q�E- 012¬¹ 234 sp_adduser� "guest" 01&- �v2Ó "guest" ��� ��/ �{� wx��. �K§� w� MN 01&� ���Q�E"guest"� ܯE� wx��.

• 01&- �<234 sp_dropuser- 012Ó, Kï/ �<234 sp_dropgroup/ 01.��.

"public" �Ð� Kï ��� 01&- �v234 sp_adduser-01.��. �A� 01& Kï/  ¡234 sp_changegroup/ 01.��.

Kï� ���/ !D234 sp_helpgroup/ 01.��.

• Kï ���  ¡/ �= sp_changegroup� Æ�� ¡å �y/Æ�2O ÎM� H� BU ÃD- f���.

grant all to null

K)4 ÃDv sysprotects U�V� 6��Ö� AB� -����. sysprotects- bc A=> � ¡å Sybase SÛ f�,7�2�D�.

56

7� jkyB bc ��B ���Q�E Å �� grant ��? Á�Ö� Å ¼�&© wx��. Å ¼�&� &�� ���Q�E Å �= �� 01&© ��/ ,O� wx��.

�# $% "# ��

SQL92 +£ (� >* ��Q Ú: ;Ñ D set proxy ;Ñ� Transact-SQL ÎÍ.��. setsession authorization (set proxy� Ý : �) ;Ñ� ANSI ��4�E��.

281

group by . having !

�� e! DEF ��&Ì create database ��/ ,O� wÓmaster ���Q�E�Ì v�.��. DEF B² �{&Ì createtrigger ��/ ,O� wx��.

_�a H �V @� d< DEF B² �{&Ì set proxy ·� setsession authorization/ ,O� wÓ master ���Q�E�Ì v�.��.

�(role) master ���Q�E�Ì T(role)/ ,O� wx��.DEF B² �{&� 01& ·� T(role) sso_role, oper_role ·�01& A� T(role)/ ,O� wx��. DEF ��&Ì 01&·� T(role) sa_role/ ,O� wx��. sa_role$ sso_role/ M vfÓ w� 01&Ì sa_role� ��� T(role)/ ,O� wx��.

89 ���# �� ���� – sp_column_privileges

�� – revoke, setuser, set

'( – proc_role

��� ���� – sp_addgroup, sp_adduser, sp_changedbowner, sp_changegroup, sp_dropgroup, sp_dropuser, sp_helpgroup, sp_helprotect, sp_helpuser, sp_role

group by � having ��� select 7� U�V/ KïZ� ^rÓ having u� �]$ +:2

� KïÌ return.��.

�� Start of select statement

[group by [all] aggregate_free_expression[, aggregate_free_expression]...]

[having search_conditions]

End of select statement

282

9A 9B: execute – group by . having !

���� group byU�V/ ̂ r KïZ� fA2Ó s¦ � (Aggregate function)v �, ¸¹ ��� ¡å ù Kï �� �( 2/ èx��.�)� �( 2? ù Kï 2^g 8$ _� ^T>��.having u� �)� �( _/ ��� wx��.

group by(!"#? �g _ �[) ¢� �, ¸¹� avg, count,max, min, sum *� s¦ � (Aggregate function)- 01� wx��. &¯� �1? "s¦ � (aggregate function)"- ��2�D�.

U�V? _� �.Z� Kï¿� wx��. Ú, '� 2� l�Kï? �� �� Kï � ��� wx��.

allwhere u �= �Ð� Kï/ ��2O 8$� MN Kï/ ��2� Transact-SQL L�i��. '- t4 �y$ lx��.

select type, avg(price) from titles where advance > 7000 group by all type

type ----------------- ---------- UNDECIDED NULL business 2.99 mod_cook 2.99 popular_comp 20.00 psychology NULL trad_cook 14.99

(6 rows affected)

s¦ _� "NULL"? where u �= �Ð� Kï/ ^T���.having u? all� �9- ,A.��.

aggregate_free_expressions¦- ��2f �� !"#i��. Transact-SQL L�? _ �[ �� Kï¿� °Ö s¦v ÷� !"# �� K↓ 31.��.

_ ��þ ·� v�(alias) �� Kï¿� �� ÷x��.�y? ? � '�i��.

select Price=avg(price), Pay=avg(advance), Total=price * $1.15 from titles group by price * $1.15

283

group by . having !

havinggroup by u �� �]/ �A.��. wherev select u �= �]/ �A2� ­#$ �0.��.

having ÝÞ �]? s¦ !"#/ ��� wx��. KJf �/ ¡å having ÝÞ �]? where ÝÞ �]$ +:.��. �y?s¦- 01� having u� '�i��.

select pub_id, total = sum(total_sales) from titles where total_sales is not null group by pub_id having count(*)>5

Adaptive Serverv ¾�- �±¿� � where R having u� ÝÞ�]/ Ý02Ó Ø �]� �Y� §iE R ¾� ¦� �,01� w� ÝÞ §&(SARG)§f 8A.��. ù U�V�¾� �= ¾� �±¿- �= �� 128g� ÝÞ §&v 01� wx��. 2fÌ MN ÝÞ �]? �� ÝK 01���.ÝÞ §& �� &¯� �1? Performance and Tuning Guide- ��2�D�.

�� 1 ¬�� ù �� �� �� � � R «� �Ü .¦- ¦Õ.��.

select type, avg(advance), sum(total_sales) from titles group by type

�� 2 8$- ��%� Kï¿� �y ù �� �� pub_id �ä Kï¿.��.

select type, pub_id, avg(advance), sum(total_sales) from titles group by type, pub_id

�� 3 MN Kï �� 8$- ¦Õ2fÌ Kï ��� "p"� D52� KïÌ !D.��.

select type, avg(price) from titles group by type having type like ’p%’

�� 4 MN Kï �� 8$- ¦Õ2fÌ having u� O) �]$+:2� Kï �� 8$Ì !D.��.

select pub_id, sum(advance), avg(price) from titles group by pub_id

284

9A 9B: execute – group by . having !

having sum(advance) > $15000 and avg(price) < $10 and pub_id > "0700"

�� 5 titles� publishers U�V/ 8.� � ù Kï(publisher)�� «� �Ü/ ¦Õ.��.

select p.pub_id, sum(t.total_sales)from publishers p, titles twhere p.pub_id = t.pub_idgroup by p.pub_id

�� 6 � �� $1000- úÓ ¬� vÏ� �Å ¬�� �� vÏB� t? ¬� �¸/ !D.��.

select title_id, advance, pricefrom titleswhere advance > 1000having price > avg(price)

�� • group by � _ �[ ·� MN !"#(_ ��þ�^ v�(alias)? �Ð)/ 01� wx��. group by- 012O 8$- ¦Õ2<^ �, ¸¹ ^T^f �� _ ·� !"#/ !D� wx��(Transact-SQL L� �� ��? 287 h�f� "group by R having �� Transact-SQL L�" ��).

• group by u 31z� _ ·� !"#� �� � 16i��.

• group by u �= fAz� MN _ �� �� 0�� .�256 �Ö- 6$� ÷x��.

• group by _� NULL 2? p+ KïZ� Més��.

• group by� having u� text ·� image _� �[/ fA� ÷x��.

• 6��Ö v�� Ä�� select 7� group by u/ 01� ÷x��.

• s¦ � (Aggregate function)� �, ̧ ¹�^ having u�Ì01� wx��. where ·� group by u�� 01� ÷x��.

s¦ � (Aggregate function)� vf ��i��. �l,[ �� � ±1z� s¦(� { �Å U�V �= 2^� 2 return)- ��� &�äÓ .��. group by u� ÷� �,¸¹� s¦ � (Aggregate function)� �Å U�V ±1���. � � E.ä s¦� � '�i��.

285

group by . having !

�@H �  * ¡¢£l � #¤ ±1z� s¦(� { ù Kï �� 2 return)- ¥q &�äÓ .��. s¦ ��� ¡å s¦ ÑÕ� 8$� having u� ��� w� ��� _�!D���.

E.ä s¦ � /� s¦- ��D� wx��. &¯� �1? "s¦ � (aggregate function)"- ��2�D�.

group by ) having ÅX¥ Æ� ÇÈ e

• where u? ={ ÝÞ �] Ìz2f �� �/ �Ð.��. �u� S�? Kï¿z<^ Kï¿zf �? ¾� �= d+2© �f���.

• group by u? ^�f �/ group by !"#� ù Ó� 2 �=2^� KïZ� M0��. group by- Í]24 �Å U�V�= 2^� Kï� Í����.

• �, ¸¹� fA� s¦ � (Aggregate function)� ù Kï �� �( 2/ ¦Õ.��. E.ä s¦� ¡å U�V �= 2^� 2Ì £�.��. /� s¦� ù Ó� Kï �� 2/ ¦Õ.��.

• having u? ={ ÝÞ �] Ìz2f �� 8$� Kï/ �Ð.��. having u� �Ì Ý02oä¬ group by u� £� �� �ä Kï �= 56/ 2� Z� BOh wx��.

• ¾� group byv ��� ¡å having? 8$ Kï �/ �ÐD*��. � � having� Kï �= 56/ 2� Z�B�� ��i��.

• ¾� group byv ÷/ ¡å having? ={(p+ Kï) U�V� 8$ �/ �ÐD*��. � � having� � �=56/ 2� Z� B�� ��i��. 8$� where u 8$� �0.��.

56 group by ) having ÅX

• '� pq� MN group by R having ¾�� SQL !X/ X .��. �y SQL !X �ä group by, having R /� s¦ � (Aggregate function)- 0124 Kï{ 2^� �$ 2^� �( 2� return���.

• �, ¸¹� _� group by !"# �¬ w<^ s¦ � (Aggregate function)� §&v z> .��.

• group by !"#� �, ¸¹ w� _ �[Ì ��� wx��. K)^ �, ¸¹ w� s¦ � (Aggregatefunction)� §&�Ì 01� _? ,±..��.

286

9A 9B: execute – group by . having !

• having !"#� _? p+ 2('- t4, s¦� §&)�> 2Ó �, ̧ ¹ ·� group by u w> .��. �, ̧¹ s¦ R having u� w� ¾�� ;<� group by u�w> .��. �, ¸¹ s¦v ÷� ¾� �= group byu/ Í]� ¡å where u �= �Ð� MN �� 2^�KïZ� \½���('� 6 ��).

Kï¿zf �? ¾�� "where� �/ �ÐD��"ä� ��� LÆ= Bi��. Kï¿� ¾�� � ��� "where�group by ¢� �/ �ÐDìÓ having? 8$� !D,� �/ �ÐD��"� L����.

• SQL !X? �� f�/ X � ¡å � �Y� U�V/ �§2� ¾�v group by R having/ 012¬¹ .��. �§ ·� ST mn� ¾�- fA� ¡å "group by R having �� Transact-SQL L�" ��� group by R having u �� Transact-SQL L�/ C�k �=� �ef� !X �7/ 012�D�.

L� �� 7�- � w¬¹ 1S �= Adaptive Server� ¾�� ù Transact-SQL L� �= :�±�f �? ¡Ó- �ÍDì� set �@ �= fipsflagger üÙ/ �C.��.&¯� �1? set/ ��2�D�.

group by ) having� #� Transact-SQL �x

• !X SQL �� Transact-SQL L�? Kï Í��^ �( ¦Õ 01zf �� _ R !"# �� ��- 31�Z��2o �Ñ� w© ���- !D2¬¹ .��.

• s¦- ��2� �, ¸¹? s¦ � (Aggregate function)� §&v é�Ó group by u ��zf �� ¦�H _/��� wx��. �v �� !Dzm� L� _? �B8$� !D ;</ ���.

• group by u? �, ¸¹ ÷� _�^ !"#/ ��� wx��.

• group by all u? where u �� ¦Õ� �Ð� Kï� woä¬ MN Kï/ !D.��. "�g  " pq� ìý�all �� '�- ��2�D�.

• having u? �, ¸¹ R group by u ÷� _�^ !"#/ ��� wx��.

287

group by . having !

Transact-SQL L�� !D � R _/ �v2<^ group byvÍ]� ¡å ¾� 8$- =-2Sv 3ýs��. �y '�- �= Transact-SQL L�� ¾� 8$ �© ;</ 9:�f �=� w/ i��.

• �y '�� !X group by R having u/ 012� ¾�� Transact-SQL L�/ 012� ¾� 0�� ��- BO ���.

a !X Kï¿ ¾�� '�i��.

select type, avg(price) from titles group by type

type ---------------------- ---------- UNDECIDED NULL business 13.73 mod_cook 11.49 popular_comp 21.48 psychology 13.50 trad_cook 15.96

(6 rows affected)

b Transact-SQL L� _§ price(�, ¸¹�, s¦ R groupby u�� é )� MN ={ �/ ù ={ Kï !D�í4 !X group by u? Kï{ 2^� �Ì Í�.��.group by� ¦e /� s¦ ;</ ½ ù Kï� ù �!Dz� Kï{ �� vÏ/ ¦Õ.��. '� 1� ¦Õ� 2$ d+.��.

select type, price, avg(price) from titles group by type

type price ------------ ---------------- --------------business 19.99 13.73 business 11.95 13.73 business 2.99 13.73 business 19.99 13.73 mod_cook 19.99 11.49 mod_cook 2.99 11.49 UNDECIDED NULL NULL popular_comp 22.95 21.48 popular_comp 20.00 21.48 popular_comp NULL 21.48

288

9A 9B: execute – group by . having !

psychology 21.59 13.50 psychology 10.95 13.50 psychology 7.00 13.50 psychology 19.99 13.50 psychology 7.99 13.50 trad_cook 20.95 15.96 trad_cook 11.95 15.96 trad_cook 14.99 15.96

(18 rows affected)

c Transact-SQL L� _� _Éz� ­#? ¾�v where u/ �D2� ¨� B�¬¹ .��. � ¾�� where u/Ìz2� �Ì 012O �� vÏ/ ¦Õ2fÌ where u Ìz2f �� �¬ !D2Ó wx��.

Adaptive Server� (H where u/ 012O �� R s¦2Ì ��2� 56 U�V/ ÌX��. � 56 U�V?Kï¿� type_� titles U�V$ �D �§z 8$ price_/ ��2fÌ where u? �§ 01zf .34!.

8$ ÷� titles� �+� �? type = "NDECIDED" RNULL vÏ/ vA �, Ú 56 U�V 8$v ÷Èü �i��. $10.00 9Ì� vÏ/ vf� !D� 8$� ={�/ �<234 '� 4� l� where u/ ím2� havingu/ �v=> .��.

select type, price, avg(price) from titles where price > 10.00 group by type

type price ------------ ---------------- --------------business 19.99 17.31 business 11.95 17.31 business 2.99 17.31 business 19.99 17.31 mod_cook 19.99 19.99 mod_cook 2.99 19.99 popular_comp 22.95 21.48 popular_comp 20.00 21.48 popular_comp NULL 21.48 psychology 21.59 17.51 psychology 10.95 17.51 psychology 7.00 17.51 psychology 19.99 17.51

289

group by . having !

psychology 7.99 17.51 trad_cook 20.95 15.96 trad_cook 11.95 15.96 trad_cook 14.99 15.96

(17 rows affected)

d having u� s¦� l? �v �]/ fA� ¡å where u� fA� MN �]¬ ��D�> .��. AdaptiveServer� having u ÷� where u �]/ �D� i��.

select type, price, avg(price)from titleswhere price > 10.00group by typehaving price > 10.00

type price ----------- ---------------- --------------business 19.99 17.31 business 11.95 17.31 business 19.99 17.31 mod_cook 19.99 19.99 popular_comp 22.95 21.48 popular_comp 20.00 21.48 psychology 21.59 17.51 psychology 10.95 17.51 psychology 19.99 17.51 trad_cook 20.95 15.96 trad_cook 11.95 15.96 trad_cook 14.99 15.96

(12 rows affected)

e U�V \� �§/ 01� !X Kï¿ ¾�� '�i��. ù publisher ID �� pub_id �ä Kï¿� �y type �ä Kï¿2O ù � �� I� s¦- ¦Õ.��.

select p.pub_id, t.type, sum(t.total_sales)from publishers p, titles twhere p.pub_id = t.pub_idgroup by p.pub_id, t.type

290

9A 9B: execute – group by . having !

pub_id type------ ------------ --------0736 business 187220736 psychology 95640877 UNDECIDED NULL0877 mod_cook 242780877 psychology 3750877 trad_cook 195661389 business 120661389 popular_comp 12875

(8 rows affected)

�y$ l� pub_id R type _ �= group by- fA2O 8$- áÓ L� _/ �v24 v�� Z� Bi��.

select p.pub_id, p.pub_name, t.type, sum(t.total_sales)from publishers p, titles twhere p.pub_id = t.pub_idgroup by p.pub_id, t.type

2fÌ � ¾�� 8$� � '�� { H� ¾� 8$� �� ����. U�V/ �§2O 56 U�V� /�s¦- 8A� � Adaptive Server� 56 U�V/ @fO8$ �� L� _� U�V(publishers)$ �§D*��.�� �� U�V�� ù L� _? �v �§/ �ÍD*��.

B� � l� U�V/ �§2� ¾�� L� _/ 0124 �=2S 3� 8$- ç© á/ wx��. �,Ô� ¡å� !X group by- 012O ¾�� U�V/ �§=> .��.

f � '�� group by �� Transact-SQL L�/ 012O �, ¸¹ ÷� _/ ��D*��. pub_id� type _ M /� s¦ �� 8$ Kï¿- �= 01���. 2fÌ @fO 8$� ù publisher �� ��/ ��2f �x��.� ¡å� ù publisher �= Ñ@^ �? � ù Ó� �± ��� «�zÈ�f Méê wx��.

select p.pub_id, sum(t.total_sales)from publishers p, titles twhere p.pub_id = t.pub_idgroup by p.pub_id, t.type

pub_id------ --------

291

group by . having !

0736 187220736 95640877 NULL0877 242780877 3750877 195661389 120661389 12875

(8 rows affected)

g � '�� g� Transact-SQL L� �$� �.i��.(H �, ¸¹� s¦- ��D� í4 group by u? Í]zÈx��. ��� L� _� ��zÈx��. group byu/ Í]�Z�� �y 8$v ^T>��.

• U�V? p+ Kï� ���. E.ä s¦� 3g� �� �/ _<.��.

• pub_idv group by u ̂ T^f �Zm� Transact-SQLL� _� ���. having u� £�2f �Zm� Kï� MN �� !D���.

select pub_id, count(pub_id) from publishers

pub_id ---------- --------- 0736 3 0877 3 1389 3

(3 rows affected)

h where u? pub_idv 1000 �Y§ publisher- p+ Kï��ÐDìm� E.ä s¦� 2g� �� �/ _<.��. L� _ pub_id� publishers U�V� MN �� �/ !D.��.

select pub_id, count(pub_id) from publishers where pub_id < "1000"

pub_id -------------- ----------- 0736 2 0877 2 1389 2

292

9A 9B: execute – group by . having !

(3 rows affected)

i � '�� group by u ÷� 01� having u� ;</ BO���.

• U�V? p+ KïZ� \½���. where u� Ø�¬ �ÐDìf �Zm� Kï(U�V)� MN �� ��2© _<���.

• � p+ Kï U�V� �? having u �= Ý0���.

• � ;<Z� §= 2g� �� �� !D���.

select pub_id, count(pub_id) from publishers having pub_id < "1000"

pub_id -------------- --------- 0736 3 0877 3 (2 rows affected)

j � '�� �, ¸¹ R group by u ÷� _�^ !"#/312� having �� L�/ 01.��. � �7? ù �± �� �� �� vÏ/ 8A2fÌ sum s¦� 8$!Dzf �oä¬ «� �Ü� $10,000 �Y§ �± ��? �Ð.��.

select type, avg(price)from titlesgroup by typehaving sum(total_sales) > 10000

type------------ ----------business 13.73mod_cook 11.49popular_comp 21.48trad_cook 15.96

(4 rows affected)

group by, having ) DO IP

• �Pv �/¼7& �Ô/ 2f �� Aµ ¶�- vfÓ w/ ¡å group by� Kï¿ _� �/¼7&- �D.��. '- t,�/¼7&- �Ô2f �� �P� �y ���v ½)�ÓvA= B,x��.

293

group by . having !

select lname, amount from groupdemolname amount ---------- ------------------ Smith 10.00 smith 5.00 SMITH 7.00 Levi 9.00 Lévi 20.00

lname �ä Kï¿� ¡å �y 8$v Í����.

select lname, sum(amount)from groupdemogroup by lnamelname ---------- ------------------ Levi 9.00 Lévi 20.00 Smith 22.00

�/¼7& R ܱÖ- �Ô2f �� �P� d+� ¾�-� ¡å �y 8$v Í����.

lname ---------- ------------------ Levi 29.00 Smith 22.00

56

89 �� – compute �, declare, select, where �

'( – s¦ � (aggregate function)

�# $% "# ��

SQL92 +£ (� >* group by | Q å� F� ]((Aggregate function)R -S� JST# select |  69 � *+# Transact-SQL ÎÍ.��.

all ���9 *+# Transact-SQL ÎÍ.��.

294

1 0 ���� ��: if...else – kill

if...else�� SQL 7 � D �]/ ,$.��.

�� if logical_expression [plan "abstract plan"]statements

[else [if logical_expression] [plan "abstract plan"]statement]

���� logical_expression!"#(_ �[, Y , ÕÛ ÑÕ&, kÖ ÑÕ&, �ã¾� *Z�Ñ8� _ �[$ Y � �.)Z�� TRUE, FALSE, NULL/return.��. � !"# select 7� t w� ¡å � select 7? �U� �> .��.

plan "abstract plan"¾� �±¿ 01� Abstract Plan(AP)/ fA.��. � ? �Å ¦��<^ ,Ô ¦�+ wZW ={ Abstract Plan(AP) �� fA���. ¦�? �±¿� SQL 7, Ú U�V ܯE2� select ¾� �=�Ì fA� wx��.

statementsSQL 7 2^ ·� �7� V¹Z� begin$ end� �Ô���.

plan "abstract plan"¾� �±¿ 01� Abstract Plan(AP)/ fA.��. � ?�Å ¦��<^ ,Ô ¦�+ wZW ={ Abstract Plan(AP)�� fA���. ¦�? if u� �±¿� !"#, Ú U�V ܯE2� ¾� �=�Ì fA� wx��. &¯� �1? Performance and Tuning Guide� 30� "Creating and UsingAbstract Plans"- ��2�D�.

�� 1 3� 2B� Â4 "yes"- §Ë.��.

if 3 > 2 print "yes"

�� 2 if...else �]? å3 HUv 94705§ H&v £�2�f UEÖ� �y 8$ set �= "Berkeley author"- §Ë.��.

295

if...else

if exists (select postalcode from authors where postalcode = "94705") print "Berkeley author"

�� 3 if...else �]? ���Q�E 01& Í� Å(M 100B� 4 ID HU- v4)v £�2�f UEÖ.��. 01& U�V� w� ¡å� else u� ÎDf- §Ë2Ó �t� �[$ ��,ID HU- �,.��.

if (select max(id) from sysobjects) < 100 print "No user-created objects in this database"else begin print "These are the user-created objects" select name, type, id from sysobjects where id > 100 end

�� 4 titles U�V w� PC9999� �� 2� NULL�m� �¾�� FALSE- return.��. � ¾�� else ,Ô? if ,Ô�FALSE ·� NULL/ return� ¡å ����. �� 2$ /�!"# �� &¯� �1? "!"#, #%& R �! 7&"� !"#/ ��2�D�.

if (select total_sales from titles where title_id = "PC9999") > 100select "true"else select "false"

�� • if ìý�� K �] �[� �7? ={ �]/ Ìz2� ¡å(/� !"#� TRUE- return2� ¡å) Æ����. �,ìý�§ else ìý�� · �� SQL 7/ D52W � �7? if�]� Ìzzf �� ¡å(/� !"#� FALSE- return2�¡å) Æ����.

• if ·� else �]? �7t� begin$ end ìý� 0� V¹Z���� ¡å Ð� �b � �7� 5dÌ ;</ 9q��('� 3 ��).

� �7? execute �� G�DH �@ ·� ST ��� SQL 7·� �7 V¹� � wx��.

• select 7� boolean !"#� +,� 01� ¡å� p+ 2/return=> .��.

296

10A 9B: if...else – kill

• if...else �]? +, �g  � ��- UEÖ2S �= �� G�DH� 01� wZW ·� ad hoc ¾�� 01� wx��('� 1$ 2 ��).

• if UEÖ� �� if �, ·� else� � ��� wx��. ifUEÖ- ��� w� �� W � ù if...else �7 ��D� select 7(·� ST � �7)� mn� �ä Päs��.

�� create table ·� create view �@� if...else V¹� �Í24 Adaptive Server� � �]� �§f «p2S � � U�V ·� � �� Eì@- Í�.��. �ä� � U�V ·��v �9 £�2� ¡å� )v �Í� wx��.

56

7� if...else ��? MN 01&© Á�Ö� 31���. � ��/ 012S �= �� ��? ��2f �x��.

89 �� – begin...end, create procedure

insert�� U�V�^ � � �/ �v.��.

�� insert [into] [database.[owner.]]{table_name|view_name}[(column_list)] {values (expression [, expression]...)

|select_statement [plan "abstract plan"] }

���� into�, 0¢i��.

table_name | view_name �/ R�23� U�V ·� �� �[i��. U�V ·� �v�� ���Q�E t wZ4 ���Q�E �[/ fA2W={ ���Q�E l? �[� U�V�^ �v � �Y�4¼�& �[/ fA.��. owner� Á�Ö� "� 01&�Wdatabase� Á�Ö� "� 01 �§ ���Q�Ei��.

�# $% "#SQL92 Transact-SQL ÎÍ

297

insert

column_list���- �v� 2^ �Y� _ ¸¹i��. ¸¹? �U� �x��. � _� ^_ ¶�� Ø �N �¦÷fÌ values u w� �^ ·� select u w� �Nf � �§ ���� l? ¶�� z w> .��. _ IDENTITY e�� w� ¡å� syb_identity ìý�- Æ�� _ �[Z� �Å� wx��.

_ ¸¹? U�V� +, _� ���- �=> 2� ¡å ��.��. ½A _ ¸¹� ÷Z4 Adaptive Server� � �§U�V� MN _(create table ¶�) insertv ±1z� Z� \½.��.

&¯� �1? 299 h�f� "_ ¸¹"/ ��2�D�.

values!"#� ¸¹/ Æ)�� ìý�i��.

expressionfA� _ Y !"#, �g  ·� null 2/ fA.��. 7&� datetime Y � 5? �+! ·� 4 �+!� �x��.

�ã¾�� expressionZ� 01� ÷x��.

2 ¸¹? �U� �> 2W �D± ·� ^D± ¸¹$ +:=> .��. ��� i� õö �� &¯� �1? "��� ��"/ ��2�D�.

select_statementci� 2/ ÝÞ2� � 012� !X select 7i��.

plan "abstract plan"¾� �±¿ 01� Abstract Plan(AP)/ fA.��. AbstractPlan(AP)? �Å ¦� ·� ,Ô ¦�+ wZW Abstract Plan(AP) �� fA���. ¦�? insert...select 7 �=�Ì fA� wx��. &¯� �1? Performance and Tuning Guide� 30� "Creating and Using Abstract Plans"- ��2�D�.

�� 1

insert titles values("BU2222", "Faster!", "business", "1389", null, null, null, "ok", "06/17/87", 0)

�� 2

insert titles(title_id, title, type, pub_id, notes, pubdate, contract) values (’BU1237’, ’Get Going!’, ’business’,

298

10A 9B: if...else – kill

’1389’, ’great’, ’06/18/86’, 1)

�� 3

insert newauthors select * from authors where city = "San Francisco"

�� 4

insert test select * from test where city = "San Francisco"

�� • insert� � �/ �v2� �Ì 01.��. update� �9 ci� �� _ 2/ A2� � 01.��.

b ÉÁ

• _ ¸¹? 2� i�z� ¶�- 8A.��. '- t pubs2 ���Q�E� publishers U�V$ ��� �1� d+� newpublishersä� U�V� w�Ó vA.��. éÒ� '��l� newpublishers U�V� _ ¸¹ w� _? publishers U�V w� �, ¸¹� _$ +:.��.

insert newpublishers (pub_id, pub_name) select pub_id, pub_name from publishers where pub_name="New Age Data"

"New Age Data"� pub_id� pub_name? newpublishers� pub_id� pub_name _ H�z wx��.

�y '��� newpublishers U�V� _ ¸¹ w� _� ¶�v publishers U�V� �, ¸¹ w� _� ¶�� +:2f �x��.

insert newpublishers (pub_id, pub_name) select pub_name, pub_id from publishers where pub_name="New Age Data"

� 8$ "New Age Data"� pub_idv newpublishers U�V� pub_name _ H�zÓ, "New Age Data"� pub_name� newpublishers U�V� pub_id _ H����.

• _� NULL 2/ Í]2� ¡å� _$ 2 ¸¹� ¢¸/Í]� wx��('� 2 ��).

299

insert

b g �.

• insert �@? ignore_dup_key, ignore_dup_row, allow_dup_row *�üÙ$ YU 51� wZW � üÙt? create index �@Z��A���. &¯� �1? create index- ��2�D�.

• õö ·� check �( �]� _ i�� w� �� 2� ¬Î§/ ��� wx��. õö? create rule �@Z� Í�zW DEF G�DH sp_bindrule �= �����. check �(�]? create table 7$ �Ú �����.

• 01&v �D±Z� i�2f �? ¡å� Á�Öv 01���. Á�Ö� create default �@Z� ÌtW DEF G�DHsp_bindefault� ��z<^ create table 7$ �Ú �����.

• insert 7� ¬Î§(domain) ·� �8� õö/ �í2<^(createrule R create trigger ��) �F� ��� ��§ ¡å(create tableR "DEF R 01& A� ��� ��" ��)� �7 �&v �Í2Ó Adaptive Serverv ) ÎDf- !D.��.

��? ÊX

• v  7& �� ·� text _ Q 7&_("")/ ÓZ4 CI � 5� ci���. 0�- fA2S �= char _� jýs��.

• CIÌ ��� 7&_/ �Ð2Ó MN �9 CI� varchar�univarchar _ ci� ���� R����. CItÌ ��2� 7&_? CI � 5Ì nÓ ^�f� truncation���. string_rtruncation üÙ� onZ� �A� ¡åv é�ä4 char,nchar, unichar, univarchar, varchar, nvarchar _� fA 0�B� 67&_? truncation���.

text ) image b� ^_

• text ·� image _ NULL/ ci(insert)24 ��� àEÖ �§�v Í�zf �ZW �� ¡å¨� 2@� 2K- 9� �{2f¬ �x��. � _ ��� àEÖ �§�- áZ34update �@/ 01.��.

,X� insert

• fA� U�V� insert �@� Æ�z4 fA� 56/ �2� Ö�<- A�� wx��.

300

10A 9B: if...else – kill

CIS(Component Integration Services) �� � insert ��

• insert �@/ � �'Ö ·� �g  ¿� d± �7Z���Ï �P� �ä� wx��.

�� B�C�P ËÌ· 2? ^_

• U�V� �/ �,2O l? U�V ci2� 56/ p+�7Z� ¨�� wx��('� 4 ��).

• select� +, �� NULL 2/ ßÓ w� U�V�,� NULL2/ 312f �� U�V� ���- ci234 �ñ U�V w� NULL ÀÖ� �� �Å 2/ �C=> .��. '- t NULL 2/ 312f �� advances U�V ���- ci234 0/ NULL ��� �Å=> .��.

insert advancesselect pub_id, isnull(advance, 0) from titles

isnull � v ÷Z4 � �@? NULL� é: 2/ vA MN �/ advances U�V ci2O NULL/ ��2Ó w� titles U�V� advance _� MN � �= ) ÎDf- �B�© ���.

���- �� l? ­#Z� �Å2f F24 NULL 2/ vA���- NULL� é: �A/ vA _ ci� ÷x��.

U�V� ��� d+� wfÌ +, ��� NULL 2� 31 O,� �- wx��. sp_help�� U�V w� _� NULL ��/ M ÷x��.

,¦§z ) insert

• ÑË Ö×ØÙ M�- �A`/ � "� 01 �§ Ö×ØÙ�÷� ¡å Adaptive Server� insert 7/ �= ̂ D±Z� Ö×ØÙ/ D5.��. ci/ C�234 Ö×ØÙ/ �2<^  ¡/ TI(rollback)=> .��. '- t4 �y$ lx��.

insert stores (stor_id, stor_name, city, state) values (’9999’, ’Books-R-Us’, ’Fremont’, ’AZ’)if exists (select t1.city from stores t1, stores t2 where t1.city = t2.city and t1.state = t2.state and t1.stor_id < t2.stor_id) rollback transactionelse commit transaction

301

insert

ÑË Ö×ØÙ M�� ¡å � 7:� Ö×ØÙ/ D52Ó ��/ stores U�V ci.��. U�V w� �� store� d+� state R city AB- ßÓ w� �/ ci2� ¡å stores� ¡ 0¢/ TI(rollback)2Ó Ö×ØÙ/ B�.��. ·�ci 56/ �2Ó Ö×ØÙ/ B�.��. ÑË Ö×ØÙM� �� &¯� �1? Transact-SQL User's Guide- ��2�D�.

IDENTITY b� g ^_

• U�V �/ ci� �� IDENTITY _� �[/ _ ̧ ¹ ·� K 2/ 2 ¸¹ ��Dìf @�D�. U�V� IDENTITY_ 2^� ��³ w�4 _ ¸¹/ Í]2Ó 2 ¸¹/ éÒ� l� ký p��.

insert id_table values()

• U�V �/ ¨y ci� � Adaptive Server� IDENTITY _ 2 1/ �{.��. � �? ùù ¢ w� �B� 2^g t? _ 2/ ßx��. � 2? create table ·� alter table 7� _ ��� Á�Ö ·� sp_bindefault DEF G�DH _ ��� Á�Ö å�.��.

�P �&� §= IDENTITY _ 2t \Ï� �Í� wx��. �� \Ï ÂS� identity burning set factor �� �g  ��A P3 wx��. \Ï? ·� IDENTITY _� ��� d ci, � R�, Ö×ØÙ TI(rollback) *Z� §= �Í� wx��.

• U�V ¼�&, ���Q�E ¼�& ·� DEF ��& *Ì_� SX U�V identity_insert table_name on/ �A� �IDENTITY _ 2/ �D±Z� ci� wx��. 01&� ���Q�E� � H � U�V �= identity_inserttable_name on/ �A� wx��. identity_insertv on� z4ùù� insert 7? _ ¸¹/ ��=> 2W IDENTITY _ �� �D±§ 2/ fA=> .��.

IDENTITY _ 2/ ci24 � _ D� 2/ fA2<^)� R�� �/ m�2� � v�=s��. IDENTITY_ unique §iE- Í�2f �? ¡å Adaptive Server� �2� Ó��/ L§2f �Zm� Ø A 2¬ ci� wx��.

�D± 2/ IDENTITY _ ci234 U�V ¼�&, ���Q�E ¼�&, DEF ��&v � �=�v é�ä _�SX U�V �=� identity_insert table_name on/ �A=>.��.

302

10A 9B: if...else – kill

• IDENTITY _ ci� w� ��2? 10 precision - 1i��.IDENTITY _� � 2 ¬P24 ��� MN insert 7� ) ÎDfv returnzÓ "�� Ö×ØÙ� _¼���.

� +� +^4 create table 7/ 012O S£� $ d+2fÌ IDENTITY _ �� A�¬(P)v o 4 U�V/ ��Í�.��. � U�V/ Í�24 insert 7 ·� bcp �Ç�È-012O S£ U�V� ���- � U�V� m0.��.

• @@identity �«   - 012O IDENTITY _ @fOZ�ci� 2/ ÝÞ.��. @fO insert ·� select into 7� IDENTITY _� ÷� U�V ±1� ¡å @@identity� 0�2/ return.��.

• 8$ U�V �,� IDENTITY _? IDENTITY e�� Ye$ ��2O éÒ� õö/ ����.

• IDENTITY _� � H �Y �,z4 � U�V� NOTNULL� A����. IDENTITY e�/ Ye2f �x��.

• IDENTITY _� !"#� +,� �,z4 K 8$ _? �IDENTITY e�/ Ye2f �x��. !"#� _�NULL/ 3124 NULL� Í�zW KJf �Z4 NOTNULL� Í����.

• select 7� group by u ·� s¦ � (Aggregate function)- ��24 8$ _? IDENTITY e�/ Ye2f �x��. IDENTITY _� s¦- ��2� _? NULL� Í�zW KJf �? _? NOT NULL� Í����.

• ���(union) ·� �§(join)$ �Ú U�V �,� IDENTITY _? IDENTITY e�/ B�2f �x��. U�V� IDENTITY _$ NULL _� ���/ ��2Ó w�4 ��� _? NULL� A�zW KJf �? ¡å�NOT NULL� A����.

 0 Í� S�T ^_

• �v with check optionZ� Í�z4 � �- �= ci� ù �?� �� �, SX �ä> .��.

'- t stores_cal �� statev "CA"� 2/ ß� stores U�V� MN �/ ��2Ó wx��.

create view stores_calas select * from storeswhere state = "CA"with check option

303

insert

with check option u? �� �, SX ø7 ùù� insert 7/ Ý0.��. statev "CA" �Ð� 2/ ß� �? M <,���.

• �v with check optionZ� Í�� ¡å �§ ��,� �Í� MN �� � �� �, SX/ Ìz=> .��. �Í� �- �=ci� ùù� � �? SX �- �= ê w> .��.

stores_cal� �Í� stores_cal30 �- Íù= %D�. � ��� �� fÆ �]� "Net 30"§ õ���é� �� �� AB- �Ó wx��.

create view stores_cal30as select * from stores_calwhere payterms = "Net 30"

stores_cal� with check optionZ� Í�zÈZm� stores_cal30/�= ci ·� 6��Ö� MN �? stores_cal/ �= ê w> .��. "CA"v é: state 2/ ß� MN �? <,���.

stores_cal30? &Å� with check option u/ ßÓ wf �? ��2�D�. �� "Net 30"� é: payterms 2/ vA �/stores_cal30/ �= ci ·� 6��Ö2� � v�2�� / �9.��. éÒ� update 7? � �/ stores_cal30/ �=ê ÷© zÈy¬ �C±Z� �� i��.

update stores_cal30set payterms = "Net 60"where stor_id = "7067"

• insert 7? with check optionZ� Í�� �§ ��� 01� ÷x��.

• �§ �- �= �/ ci2<^ 6��Ö2� ¡å ±1� MN _? d+� SX U�V e=> .��.

\] ^_ (`a 4� B�C partiton

• clustered §iEv ÷� unpartitioned U�V? ���Q�Eh�f� �� Ñ8 ÑË 2^� ��zm� U�V�� ù ci� ÑË� @fO h�fv 01���. Adaptive Server��/ ci2� d² � @fO h�f �= exclusive lock/�f2O dD 01zÓ w� �� Ö×ØÙ� � U�V���- ci2� / �p.��.

304

10A 9B: if...else – kill

alter table �@� partition u� U�V/ partition24 page chain� �v� Í����. ù page chain? Ó�� @fO h�f-ßÓ wZW � h�f� dD ci 56 01� wx��.�� h�f ab/ òO ci 56� ��/ g�2© ���.U�V� O) °�± Á �E Õ�= w� ¡å partition?·� �Pv ���- ÃD� ÁEÂ� kå� d² i/��ab �Í/ ò=Z�� ci 56� ��/ g�2© ���.ci �� g�/ �� U�V partition �� &¯� �1?Performance and Tuning Guide- ��2�D�.

56

7� insert ��? Á�Ö� U�V ·� � ¼�&© wZW �� 01&© #¬� wx��.

U�V� IDENTITY _ �� insert ��? U�V ¼�&, ���Q�E ¼�&, DEF ��&© wx��.

89 �� – alter table, create default, create index, create rule, create table,create trigger, dbcc, delete, select, update

Uq �¨ – DEF R 01& A� ��� ��

��� ���� – sp_bindefault, sp_bindrule, sp_help, sp_helpartition, sp_unbindefault, sp_unbindrule

���� – bcp

kill�� G�¯E- R�.��.

�� kill spid

�# $% "# ��

SQL92 +£ (� >* Çö� Transact-SQL ÎÍ.��.

insert F9 ab ;<Q J� union ÂG,

������ ��Q �� ��A q� � �� Þ*

��4 \]2� J� ÙR «: Æ.

-n ��4 \]2� J� ÙR «: Æ.# FIPS öÜ" HSISTU��.

305

kill

���� spidR�23� G�¯E� #% HUi��. spid� í�D Y O>2W, �� G�DH �g  �� �Pz<^ �Å   ��01� ÷x��. G�¯E ¸¹$ ST 0¢/ B34 sp_who- 012�D�.

kill 1378

�� • "� G�¯E �� BÓ�- B34 DEF G�DH sp_who- Æ�.��. éÒ� +í±§ BÓ�� '�i��.

fid spid status loginame origname hostname blk dbnamecmd

--- ----- -------- -------- -------- -------- --- --------------------

0 1 recv sleep bird bird jazzy 0 masterAWAITING COMMAND

0 2 sleeping NULL NULL 0 masterNETWORK HANDLER

0 3 sleeping NULL NULL 0 masterMIRROR HANDLER

0 4 sleeping NULL NULL 0 masterAUDIT PROCESS

0 5 sleeping NULL NULL 0 masterCHECKPOINT SLEEP

0 6 recv sleep rose rose petal 0 masterAWAITING COMMAND

0 7 running robert sa helos 0 masterSELECT

0 8 send sleep daisy daisy chain 0 pubs2SELECT

0 9 alarm sleep lily lily pond 0 masterWAITFOR

0 10 lock sleep viola viola cello 7 pubs2SELECT

spid _� Transact-SQL kill �@� 01z� G�¯E #%HUv t wx��. blk _? V�� G�¯E� G�¯E ID- ßÓ wx��. exclusive lock/ ßÓ w/ w� V�� G�¯E� �� G�¯�v ��� 2� &�/ B�� G�¯Ei��. � '��� G�¯E 10(U�V�� select)� G�¯E 7(l? U�V� insert � �� begin transaction) �=�pzÓ wx��.

• status _? �@� Y�- BÓ.��. éÒ� !� sp_who� 8$� Y� 2/ BO ���.

306

10A 9B: if...else – kill

� 10-1: sp_who� �R (�$ �� �

• "� lock$ �- B�2Ó w� G�¯E� spid �� BÓ�- B34 sp_lock/ 012�D�.

56

7� kill 31? DEF ��&� Á�Ö ���W #¬� ÷x��.

89 �� – shutdown

��� ���� – sp_lock, sp_who

o� kill ��� =3recv sleep I£�ô (½ c í�

send sleep I£�ô J½ c í�

alarm sleep waitfor delay "10:00" )V W# !� c í�

lock sleep lock K< c í�

sleeping ³�ô ./Ö/ q� � ,h c . ®ÅMÀ Z�Si cø·9 ³�ô ./Ö/4 (À2� p"r�R 5�L (� JU��.

"wakes up( Ý)" � ��H" í� �N?��. ÝIS T� Adaptive Server9 Å;M4 ÁE2� c p"r�� ; JU��.

runnable MÀ -�: p"r� c � í�

running : ²Ä +�Q² MÀ Z í�

infected Adaptive Server- â�: Qï ��4 HS�U��. N% OP: !ã.��.

kill ��# ÚÍ *e� ÇQ��. AdaptiveServerR Å�¦0² p"r�R Sã� k� RU��.

background *+, p"r�- ÇS Adaptive ServerQ 90 MÀI� p"r�("N: T�3p"�Ì)

í�. kill ��4 *+O PQ� Û9R UÑ1 ?��. ü��V� p"r�R �N2 �Q Û92Ñ sysprocessesR Î�2�k� RU��.

log suspend "�Q² gSv T�3Q ��2Ñ �Z7^ p"r�

í�

�# $% "#SQL92 Transact-SQL ÎÍ

307

kill

308

1 1 ���� ��: load database – lock table

load database�� dump database� ÌN 01& ���Q�E� I6 m0ñ/ Ö×Ø

Ù �K� �Ú ��.��.

�� load database database_name from [compress::]stripe_device

[at backup_server_name ][density = density_value, blocksize = number_bytes,dumpvolume = volume_name, file = file_name]

[stripe on [compress::]stripe_device[at backup_server_name ][density = density_value, blocksize = number_bytes,dumpvolume = volume_name, file = file_name]

[[stripe on [compress::]stripe_device[at backup_server_name ][density = density_value, blocksize = number_bytes, dumpvolume = volume_name,file = file_name]]...]

[with {density = density_value, blocksize = number_bytes,dumpvolume = volume_name, file = file_name,[dismount | nodismount],[nounload | unload],listonly [= full],headeronly, notify = {client | operator_console}}]]

309

load database

���� database_nameI6 m0ñ/ �� ���Q�E� �[i��. for load üÙZ� ÌN ���Q�E^ S£ ���Q�Ev � wx��.S£ ���Q�E� 'G� ���- ��24 S£ ���-M ÕÃÙ��. �2� ���Q�E ÂS� ±¬ 'G����Q�E̵? z> .��. ���Q�E �[? ����^ �Å   , �� G�DH �g  � 2^� fA� wx��.

compress::B�� ���Q�E� �� =�- U�.��. compress üÙ�� &¯� �1? ��� �� ���� 27� "01& ���Q�E I6 R m�"- ��2�D�.

from stripe_device���v ��z� Á �Ei��. 'G Á �E- fA� �Ø �#/ 01� §f �� &¯� �1? 324 h�f�"'G Á �E fA"/ ��2�D�. f�z� 'G Á �E� ¸¹/ B34 Adaptive Server �: R �� ²��- ��2�D�.

at backup_server_name'G Á �Ev �v� ���� Æ� �§ �Ï BackupServer� �[i��. §�h�E �+/ 012� |}~ �=�� backup_server_name� ={ §�h�E �+ ^T^>.��.

density = density_value� 2? �D���.

blocksize = number_bytes'G Á �E �� Á�Ö V¹ ÂS- �A�.��. UNIXDEF V¹ ÂS- fA� ¡å� 'G- �2� � 01z� ÂS� d+=> .��.

dumpvolume = volume_nameANSI U�G ��V� ê� �[ ��i��. load database� U�Gv _3 w/ � � ��V/ L§2Ó �F� ê�� ��z� ¡å ) ÎDf- ÌX��.

�� load database- 012� ¡å dumpvolume üÙ? file=filenameüÙ �F� �+ �[� ½)/ � ) ÎDf- ^T�f �x��. Backup Server� �F� U�Gv ?3A �¦÷� ={ �+/ è� �Å U�G- ÝÞ.��.

310

11A 9B: load database – lock table

stripe on stripe_device�v 'G Á �Ei��. Á �E- 32gef 01� wZW OS� to stripe_device u �[� fAz w� Á �E¬ �����. Backup Server�� dD MN Á �E�,� ���- ��2m� ��� ê�  ¡� D\$ v òX��. 'G Á �E- fA2� ­® �� &¯� �1? 324h�f� "'G Á �E fA"/ ��2�D�.

dismount | nodismount_�?/� `� V�� cde2� U�G- ��� Y�� � §f O,- 8A.��. Sñ±Z� �� 01� MN U�G� ��v C�� � Ô����. nodismount- 0124 �v��^ 'G U�G- ¦e 01� wx��.

nounload | unload��v C�� �y U�G- zÍ/ §f O,- 8A.��.Sñ±Z� U�G� zÍf �ZW ��� 01&v d+� U�G ê�Z�,� �v ��- �� w© ���. @fO 'G �+ �= unload- fA24 �� 'G ê�Z�,� ��� wx��. ��v C�� � ={ U�G- zÍÓ ���2©���.

file = file_nameU�G ê�� jA ���Q�E 'G� �[i��. 'G-Ìt � ={ 'G �+ �[/ S¹2f �? ¡å� listonly-012O MN 'G �+ �� AB- ^T� wx��.

listonly [ = full]U�G ê�� MN 'G �+ �� AB� !D2fÌ Uqr�a �<)� .34!. listonly� ���Q�E� Á �E- L§2Ó 'Gv �� ¾¿ R D\ Ð ÕÃ� ¾¿ RD\¬ L§.��. listonly = full? 'G �� &¯� AB- �v� �C.��. BÓ� M ANSI U�G ��V� Aµz wx��.

ê� �+ ¸¹/ !D� �y Backup Server� ê�  ¡ �;/ B���. �;&� �� U�G ê�/ ��2<^ MN 'GÁ �E �� ¸¹ 56/ B�� wx��.

"� �" �ä listonly üÙ� headeronly üÙ/ ��2O 01���.

��! 1/4§: IÖ�f U�G�� load database with listonly- 012f @�D�.

311

load database

headeronlyp+ 'G �+ �� 1o AB� !D2fÌ Uqr�a�<)� .34!. headeronly� �� �+ �[ fA file =file_name üÙ/ 012f �� ¡å U�G� { H� �+�� AB- !D.��. 'G 1o� �y$ l? 0¢� ^T>��.

• 'G ��(���Q�E ·� Ö×ØÙ �K)

• ���Q�E ID

• �+ �[

• 'Gv �� ¾¿

• 7& s.

• Aµ ¶�

• h�f

• �y Å ID

notify = {client | operator_console}Á�Ö ÎDf �Y/ �A�.��.

• �;& �9� S�/ �C2� �; Å��� Backup Serverv Æ�zÓ w� ���� �;& �9� ê�  ¡ ÎDfv ¢Y B�s��. client- 0124 dump database- 6S¿� �9� ¯Ù �� Backup Server ÎDf- äåG� wx��.

• UNIX� l� �;& �9� S�/ �C2f �� �; Å��� dump database- 6S¿� `ä��Ö ÎDfv B�s��. operator_console/ 0124 Backup Serverv Æ�zÓ w� �9� ÎDf- äåG� wx��.

�� 1 U�G Á �E�,� pubs2- �D ��.��.

load database pubs2 from "/dev/nrmt0"

�� 2 REMOTE_BKP_SERVER Backup Server- 012O pubs2���Q�E- 'G.��. � �@Z� ¯ Á �E� �[� fA���.

load database pubs2 from "/dev/nrmt4" at REMOTE_BKP_SERVER stripe on "/dev/nrmt5" at REMOTE_BKP_SERVER stripe on "/dev/nrmt0" at REMOTE_BKP_SERVER

�� 3 /opt/bin/Sybase/dumps w� dmp090100.dmpä� ���'G �+� pubs2 ���Q�E- ��.��.

312

11A 9B: load database – lock table

load database pubs2 from "compress::/opt/bin/Sybase/dumps/dmp090100.dmp"

�� • listonly� headeronly üÙ? 'G �+/ ��2f �Ó K AB- !D.��.

• Backup Server- �= 'G� ��v ����.

• ! 11-1? ���Q�E- I6Z�,� m�2� � 01� �@$ DEF G�DH- BO ���.

� 11-1: �� g�J5 |{6D L�P? � ESU?

� �m

• �� |}~� ÌN 'G� ��� ÷x��.

• 10.0 �� P� �P� ÌN 'G� ��� ÷x��.

• ���Q�E ª� ���Q�E YU integrity constraintvw/ �� sysreferences DEF U�V� Ð, ���Q�E� J(ID HUv é )/ H�2© ���. Adaptive Server� load database- 012O ���Q�E �[/  ¡2<^�� �P� ��� ¡å �� �8�/ B�� ÷x��.

• ª� ���Q�E �( �]/ �v ·� R�2<^ ª� ���Q�E �( �]� w� U�V/ R�� �@� ;</$� ���Q�E- ,- 'G2�D�.

��! �)� ���Q�E� �� 'G- ��24 ���Q�E æY� �Í� wx��. �� �[Z� ��2<^ ��Adaptive Server� 8SS �= ���Q�E- 'G2S �(H alter table/ 012O Ð, �� integrity constraint- MR�2�D�.

• load database� master..sysattributes�,� ��� ���Q�E ��� Z� �¬z� suspect h�f ÀÖ�- R�2© ���.

��u �� "!u vwcreate database for load ýpR "�2 w0 ������R ië��. load database ������R ýp";� ñE?��.

load transaction ñE^ ������Q _W £¤¥�4 �+?��. online database ®Å Adaptive Server Ä�H" ������R ¶�þ��: �

µ5 � "� �X� �µQ ������- �+H" *+D( J�  ?��.

load { database | transaction } with {headeronly | listonly}

��pQ² ýp � 4 Î�?��.

sp_volchanged Backup Server9 AB '! �SQ C?��.

313

load database

• load database� S£ ���- M ÕÃÙ��.

• ���Q�E 'Gv ��� ��� �v� D\/ tO �y vf G�¯E- �=> ={ ���Q�E- 01� wx��.

• ��v C�� �y ={ ���Q�E� 01zf �?h�fv M ��¿���. � � ��� D\? 01zf�? h�f �ä Päs��. target database ÂSv��� ���Q�E ÂS� lZ4 Backup Server� � p¦- �.��. target database ÂSv ��� ���Q�EB� Â4 Adaptive Server� Backup Serverv ��- C�� �y � p¦- �.��. � p¦ ��� D\?Q h�f �ä Päs��.

• ���Q�E 'G ��z w� Ö×ØÙ �K� Ö×ØÙ? M TI(rollback) ·� T�ý�(roll forward)z> .��. � � ��� D\? �K � Ö×ØÙ� ��$ �ä Päs��. � p¦� Adaptive Server �= ����.

• �2� ���Q�E ÂS� ±¬ ��� ���Q�E̵? z> .��. �2� ���Q�E� ÂSv s� 5Z4 Adaptive Server� ��� ÂS- �C2ä� ) ÎDf- ^T���.

• null Á �E(UNIX� ¡å� /dev/null)�,� ��� ÷x��.

• 01& A� Ö×ØÙ�� load database �@/ 01� ÷x��.

�� - ��h locking

• ���Q�E- ��2� d²� �- 01� ÷x��.load database �@? ���Q�E� Y�- "�Gä§"Z� �A.��. Y�v "�Gä§"§ ���Q�E� é�¬ 01� ÷x��. "�Gä§" Y�� 01&v �� D9E � ���Q�E- ܯE2<^  ¡� ÷¬¹ .��.

• load database� ��� ���Q�E� online database �@� ̂? �ef ܯE� ÷x��.

S�TU��¥ ,¦§z � ©/? � Î��

• 01& ���Q�E 'G- ��E 10.0 �Y �P�,� "���� Adaptive Server ��E� m�2Ó 6K���234�y/ �=> .��.

a �� ���Q�E 'G- ��.��.

314

11A 9B: load database – lock table

b @fO ���Q�E 'G �� MN Ö×ØÙ �K 'Gv �� ���� ��.��.

Adaptive Server� ù 'G� T=E:G- L§2O AL�D9E �ä AL� ���Q�E� ��z¬¹ .��.

c online database �@/ Æ�2O 6K���- �2Ó ���Q�Ev C1Z� 01z¬¹ .��.

d �� 6K���� ���Q�E- 6K��� �� ÚD'G=> "� Adaptive Server ��E� +:2� 'G-Ìt wx��.

©/ ���� QD

• 'G Á �E- ���, �Å   ·� �g  � �� G�DH fA� wx��.

• �Å Á �E- �y$ l� fA� wx��.

• sysdevices DEF U�V w� /�± Á �E �[

• u� ¡� �[

• Y� ¡� �[

Backup Server� Adaptive Server� "� 56 ÁßÔ�- 012O Y� ¡� �[/ L§.��.

• �Öý �Å ¸Ã ��� � 'G Á �E� u� ¡� �[/ fA2�D�. � ¡� �[? Backup Server- Æ�2Ów� ���� í�D ��=> .��. � �[ 7&^ .&, Êò(_) Ð �� 7&v w/ �� �Å �[/ �+!� �> .��.

• 'G Á �E �� ¼��$ �� 7�� �Å �@/ 012� � ­=v � wx��.

• ù ��� �� �� °�± Á �E- 012� ¡å �2O � H � �Y ��(·� 'G)- Æ�� wx��.

Backup Server

• Adaptive Server� l? ���� Backup Server- Æ�2Ów> .��. Backup Server� master..sysservers U�V� ¸¹ t w> .��. � ÀÖ�� �: ·� 6K��� � ÌtfW R�� ÷x��.

• �� ��� I6 Á �E- ÈZm� �Öý �Å- ��� �� �Ï ���¬ Backup Server- �:= ; Y�O> .��.

315

load database

¯° �G

• 'G ê�? ANSI U�G ��V !X �ä ��V� fA���. �)� ��V� EÖä�G �A � ={ Á �E� �:� /�± ê� v ��z wx��.

• ��2� d² Backup Server� U�G ��V/ 012O AL� ¶��� ê�� ��z w�f L§.��. ��� 01&� 'G D 01� B� ±? � Á �E�,� ��� w© ���.

�� �Öý �Å ¸Ã 'G� �� 56/ �� ��ù 56 �= EÖä�G Á �E� v l¬¹ fA=> .��.

©/ ¯° �A

• Backup Server� "� ��� ê�� 7�- Íf24 ̀ ä��Ö^ �;& ÷�� ÎDf- B� ê�  ¡/ �;.��.�� ê�/ ��� ��� �;&v Backup Server� ��� w� MN Adaptive Server� sp_volchanged DEF G�DH- Æ��Z�� ={ Backup Server �B2© ���.

��� S�TU�� w�

• 'G�,� DEF ���Q�E- m�2� �� p¦±f�/ B34 ��� �� ���- ��2�D�.

��k µ¶¬

• ��� 6S� Adaptive Server� Backup Server ù /����Q�E� �K Á �E� Primary Á �E �[/ �P.��. Primary Á �E� 9)- =�`/ � Adaptive Server� ��2O B� Á �E� �[/ �P.��. Backup Serverv ��� �ä/ C�2S � �[� fA� Á �E �&v �Í2� ¡å� Adaptive Server� ={ ��- �f.��.

• load databasev A� �§ d² �[� fA� Á �E� 9)- =�23Ó 24 Adaptive Server� ÎDf- ^T���.disk unmirror �@/ Æ�2� 01&� ��- �f2<^ ��v C�� ��ef disk unmirror- fÑ� wx��.

• Backup Serverv Primary Á �E� ���- ��2Ó ^4load database� �- B� Á �E� m0.��. load database� ���Q�E Á �Ev 9)ðz� ¡å C�2� � D\� ¸¡��.

316

11A 9B: load database – lock table

56

7� DEF ��&� ���Q�E ¼�&, �;& T(role)/ ß� 01&Ì load database- Æ�� wx��.

89 �� – dbcc, dump database, dump transaction, load transaction, onlinedatabase

��� ���� – sp_helpdevice, sp_volchanged, sp_helpdb

load transaction�� dump transaction �@Z� ÌtA Ö×ØÙ �K� I6 m0ñ/

��.��.

�� load tran[saction] database_namefrom [compress::]stripe_device

[at backup_server_name ][density = density_value, blocksize = number_bytes, dumpvolume = volume_name,file = file_name]

[stripe on [compress::]stripe_device[at backup_server_name ][density = density_value, blocksize = number_bytes,dumpvolume = volume_name,file = file_name]

[[stripe on [compress::]stripe_device[at backup_server_name ][density = density_value, blocksize = number_bytes, dumpvolume = volume_name,file = file_name]]...]

[with { density = density_value, blocksize = number_bytes, dumpvolume = volume_name,file = file_name,[dismount | nodismount],[nounload | unload],listonly [= full],headeronly,notify = {client | operator_console}until_time = datetime}]]

�# $% "#SQL92 Transact-SQL ÎÍ

317

load transaction

���� database_nameÖ×ØÙ �K� 'G� I6 m0ñZ�,� ���- �����Q�E� �[i��. �2� ���Q�E� �K ̄ K(Ö ÂS� ±¬ 'G� ���Q�E� �K ̄ K(Ö̵?z> .��. ���Q�E �[? ����^ �Å   , ��G�DH� �g  � 2^� fA� wx��.

compress::B�� Ö×ØÙ �K� �� =�- U�.��. compress üÙ �� &¯� �1? ��� �� ���� 27� "01& ���Q�E I6 R m�"- ��2�D�.

from stripe_deviceÖ×ØÙ �K- ��2� 'G Á �E� �[i��. 'G Á �E- fA� � Ø �#/ 01� §f �� &¯� �1? 324 h�f� "'G Á �E fA"/ ��2�D�. f�z� 'G Á �E� ¸¹/ B34 Adaptive Server �: R ��²��- ��2�D�.

at backup_server_name'G Á �Ev �v� ���� Æ� �§ �Ï Backup Server� �[i��. §�h�E �+/ 012� |}~ �=��backup_server_name� ={ §�h�E �+ ^T^> .��.

density = density_valueU�G Á �E �� Á�Ö �¬- �A�.��. fg\K��4!.

blocksize = number_bytes'G Á �E �� Á�Ö V¹ ÂS- �A�.��. UNIXDEF V¹ ÂS- fA� ¡å� 'G- �2� � 01z� ÂS� d+=> .��.

dumpvolume = volume_nameANSI U�G ��V� ê� �[ ��i��. load transaction? U�Gv _3 w/ � � ��V/ L§2Ó �F� ê�� ��z� ¡å ) ÎDf- ÌX��.

stripe on stripe_device�v 'G Á �Ei��. Á �E- 32gef 01� wZW OS� to stripe_device u �[� fAz w� Á �E¬ �����. Backup Server�� dD MN Á �E�,� ���- ��2m� ��� ê�  ¡� D\$ v òX��. 'G Á �E- fA2� ­® �� &¯� �1? 324h�f� "'G Á �E fA"/ ��2�D�.

318

11A 9B: load database – lock table

dismount | nodismount_�?/� `� V�� cde2� U�G- ��� Y�� � §f O,- 8A.��. Sñ±Z� �� 01� MN U�G� ��v C�� � Ô����. nodismount- 0124 �v��^ 'G U�G- ¦e 01� wx��.

nounload | unload��v C�� �y U�G- zÍ/ §f O,- 8A.��.Sñ±Z� U�G� zÍf �ZW ��� 01&v d+� U�G ê�Z�,� �v ��- �� w© ���. @fO 'G �+ �= unload- fA24 �� 'G ê�Z�,� ��� wx��. ��v C�� � ={ U�G- zÍÓ ���2©���.

file = file_nameU�G ê�� jA ���Q�E 'G� �[i��. 'G-Ìt � ={ 'G �+ �[/ S¹2f �? ¡å� listonly-012O MN 'G �+ �� AB- ^T� wx��.

listonly [ = full]U�G ê�� MN 'G �+ �� AB� !D2fÌ :}~g �#* �<)� .34!. listonly� ���Q�E� Á �E- L§2Ó 'Gv �� ¾¿� D\ Ð ÕÃ� ¾¿� D\¬ �C.��. listonly = full? 'G �� &¯� AB- �v� �C.��. BÓ� M ANSI U�G ��V� Aµzwx��.

ê� �+ ¸¹/ !D� �y Backup Server� ê�  ¡ �;/ B���. �;&� �� U�G ê�/ ��2<^ MN 'GÁ �E �� ¸¹ 56/ B�� wx��.

"� �" �ä listonly üÙ� headeronly üÙ/ ��2O 01���.

��! 1/4§: IÖ�f U�G�� load transaction with listonly-012f @�D�.

319

load transaction

headeronlyp+ 'G �+ �� 1o AB� !D2fÌ Uqr�* �<)� .34!. headeronly� �� �+ �[ fA file = file_nameüÙ/ 012f �� ¡å U�G� { H� �+ �� AB- !D.��. 'G 1o� �y$ l? 0¢� ^T>��.

• 'G ��(���Q�E ·� Ö×ØÙ �K)

• ���Q�E ID

• �+ �[

• 'Gv �� ¾¿

• 7& s.

• Aµ ¶�

• h�f

• �y Å ID

• �K � ÅÂ�§Ö �:

• v� �Ò� begin transaction �Ä�� �:

• �� R � D9E ¾¿

notify = {client | operator_console}Á�Ö ÎDf �Y/ �A�.��.

• �;& �9� S�/ �C2� �; Å��� Backup Serverv Æ�zÓ w� ���� �;& �9� ê�  ¡ ÎDfv ¢Y B�s��. client- 0124 dump database- 6S¿� �9� ¯Ù �� Backup Server ÎDf- äåG� wx��.

• UNIX� l� �;& �9� S�/ �C2f �� �; Å��� dump database- 6S¿� `ä��Ö ÎDfv B�s��. operator_console/ 0124 Backup Serverv Æ�zÓ w� �9� ÎDf- äåG� wx��.

until_timeÖ×ØÙ �K fA� D\ef Ö×ØÙ �K- ��.��.fA� D\ ¢� �� Ö×ØÙÌ ={ ���Q�E H����.

�� 1 pubs2 ���Q�E U�G �= Ö×ØÙ �K- ��.��.

load transaction pubs2 from "/dev/nrmt0"

320

11A 9B: load database – lock table

�� 2 REMOTE_BKP_SERVER Backup Server- 012O pubs2���Q�E �� Ö×ØÙ �K- ��.��.

load transaction pubs2 from "/dev/nrmt4" at REMOTE_BKP_SERVER stripe on "/dev/nrmt5" at REMOTE_BKP_SERVER stripe on "/dev/nrmt0" at REMOTE_BKP_SERVER

�� 3 1997� 3� 20+ �� 10:51:43:866ef pubs2 �� Ö×ØÙ �K- ��.��.

load transaction pubs2from "/dev/ntmt0"with until_time = "mar 20, 1997 10:51:43:866am"

�� • listonly R headeronly üÙ? 'G �+/ ��2f �Ó K AB- !D.��.

• Backup Server- �= 'G� ��v ����.

• ! 11-2� ���Q�E- I6Z�,� m�2� � 01� �@$ DEF G�DH- BO ���.

� 11-2: �� g�J5 L�P? � ESU?

� �m

• �� |}~� ÌN 'G� ��� ÷x��.

• 10.0 �� P� �P� ÌN 'G� ��� ÷x��.

• ���Q�E� Ö×ØÙ �K� í�D d+� ��E Xw> .��.

• D\± ¶�� Ö×ØÙ �K- ��2�D�.

• null Á �E(UNIX� ¡å� /dev/null)�,� ��� ÷x��.

��u �� "!u vwcreate database for load ýpR "�2 w0 ������R ië��.load database ������R ýp";� ñE?��.

load transaction ñE^ ������Q _W £¤¥�4 �+?��. online database ®Å Adaptive Server Ä�H" ������R ¶�þ��: �µ

5 � "� �X� �µQ ������- �+H" *+D ( J�  ?��.

load { database | transaction } with {headeronly | listonly}

��pQ² ýp � 4 Î�?��.

sp_volchanged Backup Server9 AB '! �SQ C?��.

321

load transaction

• 6K���- �2� online database �@ ��� load transaction/ 01� ÷x��. ���Q�E 6K��� w� load database, online database, load transaction *� D9E� ©ªH «i��. ���Q�E 6K��� �� AL� D9E� load database, load transaction, online databasei��.

• 6K���^ P�  ¡� ÷/ �� online database �yload transaction/ 01� wx��.

• 01& A� Ö×ØÙ� load transaction �@/ 01� ÷x��.

S�TU�� w�

• ���Q�E- m�234 �y/ �=> .��.

• �� ���Q�E 'G- ��.��.

• @fO ���Q�E 'G �� MN Ö×ØÙ �K 'Gv �� ���� ��.��.

• online database �@/ Æ�2O ���Q�Ev C1Z�01z¬¹ .��.

• ª� ���Q�E �( �]/ �v ·� R�2<^ ª� ���Q�E �( �]� w� U�V/ R�� �@� ;</$� ���Q�E- ,- 'G2�D�.

��! �)� ���Q�E� �� 'G- ��24 ���Q�E æY� �Í� wx��.

• Adaptive Server ���Q�E� I6$ m� �� &¯� �1? ��� �� ���- ��2�D�.

QD· ��ÏQ S�TU�� w�

• �,Ô� ���Q�E �= until_time üÙ/ 012O ��z<^ 'Gz¬¹ � wx��. K)^ � üÙ? master� l? ���Q�E� ±1zf �x��. �� ���� �Kvd+� Á �E wS �7i��. ·� @fO dump database(': tempdb) �� truncation� �Kv w� ���Q�E�¬�- 01� ÷x��.

• until_time üÙ? �y$ l? ��� §= �å �1� üÙi��.

322

11A 9B: load database – lock table

• � üÙ/ 0124 jA D\ef ���Q�E +��/ �"� wx��. '- t, DSS(Decision Support System)���Q�E� OLTP(Online Transaction Processing) ���Q�Ev w� ³¡� DEF ��&� DSS ���Q�E- ¢� fA� D\ef T2O �� P�$ "� P�\� ���- kª� wx��.

• ��� U�V/ R�2� * 01&v Æ � ���- �<� ¡å until_time üÙ/ 0124 ={ ���v �<zS � D�ef ���Q�E- T�ý�(roll forward)�Z�� �F� �@/ TI(rollback)� wx��.

• ���v �9 �<� �� until_time üÙ/ �$±Z� 01234 )v �Í� Dù/ ALk Mé> .��. ) �Í b� select getdate() �@/ �24 � Dù/ Mé� wx��. ��6 p�ef 012O AL� Dù/ Mé�34 convert� - 012�D�. '- t4 �y$ lx��.

select convert(char(26), getdate(), 109)--------------------------Feb 26 1997 12:45:59:650PM

• until_time/ 012O Ö×ØÙ �K- ��2Ó ^4 AdaptiveServerv ={ ���Q�E� �K D9E- �D D5.��.� ? until_timeZ� load transaction/ �2Ó ^4 ���Q�E- �'G2S �ef� �e Ö×ØÙ �K- ��� ÷y/ �9.��. �ä� �� Ö×ØÙ �K- 'G234(H ���Q�E- 'G=> .��.

• fA� D\ ¢� �� Ö×ØÙÌ ���Q�E H����. K)^ until_time fA b� �� Ö×ØÙ� ���Q�E ��� ±1z� ¡å¬ v= wx��. �)� ¡å� dD O) Ö×ØÙ/ �� � �Í� wx��. Ö×ØÙ� ¶�� D\ ¶�� D9E�� Ö×ØÙ �K Í�zf�/ ¬ wx��. �)� ¡å D\ D9E� > w� Ö×ØÙ? m�� ��� ^T^© ���. � D\? 16B� îé> .��.

• fA� D\ ���Q�E- m�2� �� &¯� �1? ��� �� ���- ��2�D�.

323

load transaction

�� - ��h locking

• ���Q�E- ��2� d²� �- 01� ÷x��. load transaction �@? load database�� P� ���Q�E� �Gä§/�ä§ Y�- �f �x��. load transaction? ���Q�E� Y�- ¨y L§� K�� p��. load database �@? ���Q�E� Y�- "�Gä§"Z� �A.��. Y�v "�Gä§"§ ���Q�E� é�¬ 01� ÷x��. "�Gä§" Y�� 01&v �� D9E � ���Q�E- ܯE2<^  ¡� ÷¬¹ .��.

• load database� ��� ���Q�E� online database �@� Æ�� �ef ܯE� ÷x��.

S�TU��¥ ,¦§z � ©/? � Î��

• 01& ���Q�E 'G- ��E 10.0 �Y �P�,� "�� Adaptive Server ��E� m�2Ó 6K���234 �y/ �=> .��.

a �� ���Q�E 'G- ��.��.

b @fO ���Q�E 'G �� MN Ö×ØÙ �Kv ÌtA ���� ��.��.

c online database- 012O 6K���- �.��.

d �� 6K���� ���Q�E- 6K��� �� ÚD'G=> "� Adaptive Server ��E� +:2� 'G-Ìt wx��.

©/ ���� QD

• 'G Á �E- ���, �Å   ·� �g  � �� G�DH fA� wx��.

• �Å Á �E�,� ��� � �y$ l? 'G Á �E-fA� wx��.

• u� ¡� �[

• Y� ¡� �[

• sysdevices DEF U�V w� /�± Á �E �[

Backup Server� Adaptive Server� "� 56 ÁßÔ�- 012O Y� ¡� �[/ L§.��.

324

11A 9B: load database – lock table

• �Öý �Å ¸Ã ��� � 'G Á �E� u� ¡� �[/ fA=> .��. sysdevices DEF U�V�,� /�±Á �E �[�^ Y� ¡� �[/ 01� ÷x��. � ¡� �[? Backup Server- Æ�2Ó w� ���� í�D��=> .��. � �[ 7&^ .&, Êò(_) Ð �� 7&v w/ �� �Å �[/ �+!� �> .��.

• 'G Á �E �� ¼��$ �� 7�� �Å �@/ 012� � ­=v � wx��. sp_addumpdevice G�DH� DEF U�V Á �E- �v2fÌ, ={ Á �E�,� ��2<^ 'G Á �E�� �+/ Ìt w�� 0Æ? BK2f �x��.

• ù ��� �� �� °�± Á �E- 012� ¡å �2O � H � �Y ��(·� 'G)- Æ�� wx��.

Backup Server

• Adaptive Server� l? ���� Backup Server- Æ�2Ów> .��. Backup Server� master..sysservers U�V� ¸¹ t w> .��. � ÀÖ�� �: ·� 6K��� � ÌtfW R�� ÷x��.

• �� ��� I6 Á �E- ÈZm� �Öý �Å- ��� �� �Ï ���¬ Backup Server- �:= ; Y�O> .��.

¯° �G

• 'G ê�? ANSI U�G ��V !X �ä ��V� fA���. �)� ��V� EÖä�G �A � ={ Á �E� �:� /�± ê� v ��z wx��.

• ��2� d² Backup Server� U�G ��V/ 012O AL� ¶��� ê�� ��z w�f L§.��. ��� 01&� 'G D 01� B� ±? � Á �E�,� ��� w© ���.

�� �Öý �Å ¸Ã 'G� �� 56/ �� �� ù56 �= EÖä�G Á �E� v l¬¹ fA=> .��.

©/ ¯° �A

• Backup Server� "� ��z w� ê�� 7�- �ª�¡å� ̀ ä��Ö^ �;& ÷�� ÎDf- B� ê�  ¡/ �;2© ���. �� ê�/ ��� ��� �;&vBackup Server� ��� w� MN Adaptive Server�sp_volchanged- Æ��Z�� Backup Server �B2© ���.

325

lock table

��� S�TU�� w�

• 'G�,� DEF ���Q�E- m�2� �� p¦±f�/ B34 ��� �� ���- ��2�D�.

��k µ¶¬

• ��� 6S� Adaptive Server� Backup Server ù /����Q�E Á �E� /� �K Á �E� Primary Á �E �[/ �P.��. Primary Á �E� 9)- =�`/� Adaptive Server� ��2O B� Á �E� �[/ �P.��. Backup Serverv ��� �ä/ C�2S � �[� fA� Á �E �&v �Í2� ¡å� Adaptive Server� ={ ��- �f.��.

• load transaction� A�2� d² �[� fA� Á �E� 9)- =�23Ó 24 Adaptive Server� ÎDf- ^T���.disk unmirror �@/ Æ�2� 01&� ��- �f2<^ ��v C�� ��ef disk unmirror- fÑ� wx��.

• Backup Serverv Primary Á �E� ���- ��2Ó ̂ 4 loadtransaction? �- B� Á �E� m0.��. load transaction?���Q�E Á �Ev 9)z� ¡å C�2� � D\� ̧¡��.

56

7� load transaction ��? Á�Ö� ���Q�E ¼�&� �;&©wZW #¬� ÷x��.

89 �� – disk unmirror, dump database, dump transaction, load database,online database

��� ���� – sp_dboption, sp_helpdb, sp_helpdevice, sp_volchanged

lock table�� Ö×ØÙ � U�V/ �D±Z� lock.��.

�� lock table table_name in {share | exclusive } mode[ wait [ numsecs ] | nowait ]

�# $% "#SQL92 Transact-SQL ÎÍ

326

11A 9B: load database – lock table

���� table_namelock� U�V� �[/ fA.��.

share | exclusive U�V ±1� lock ��/ shared ·� exclusive �� fA.��.

wait numsecs ÚD lock� ÷/ ¡å �S� 6 - fA.��. numsecs-Í]24 lock table �@� lock� Y§� �ef �S2¬¹ fA.��.

nowaitÚD lock� ÷� ¡å �@ �&v �Í.��.

�� 1 titles U�V� shared table lock/ D¬.��. set lock wait�@Z� ¯Ù X� �Sv �Az wZ4 lock table �@? �S\ d² �S2Ó KJf �Z4 ̄ Ù X �S D\� 01���.

begin transactionlock table titles in share mode

�� 2 authors U�V� exclusive table lock/ D¬.��. 56 � lock/ �A2f F24 �@� AB ÎDfv return���. Ö×ØÙ �� �e �@? lock table �@� ÷ü ¨� ¦e���.

begin transactionlock table authors in exclusive mode wait 5

�� 3 U�V lock/ 56 ² �A2f F24 G�DH� 01&� T(role)/ L§.��. sa_role/ vA 01&v G�DH- Æ�2� ¡å� G�DH� �Ó ÎDf- ̂ T�W U�V/ lock2f �Ó A�.��. 01&v sa_role/ vfÓ wf �Z4 Ö×ØÙ� TI(rollack)���.

create procedure bigbatchasbegin transactionlock table titles in share mode wait 5if @@error = 12207 begin /* ** Allow SA to run without the table lock ** Other users get an error message */ if (proc_role("sa_role") = 0) begin print "You cannot run this procedure at this time, please try again later"

327

lock table

rollback transaction return 100 endelse begin print "Couldn’t obtain table lock, proceeding with default locking." endend/* more SQL here */commit transaction

�� • lock table �@? Ö×ØÙ ��Ì 01� wZW U�Vlock? Ö×ØÙ d² �f���.

• lock table� d5 ­#? �@ fAz<^ ¯Ù X ·� �P X� 01 �§ �S D\ üÙ �ä Päs��.

• wait� nowait üÙ� fAz wf �Z4 lock table �@? ¯Ù X �S S\�^ �P X �S S\/ 01.��. set lockwait �@/ 012O ¯Ù X �S D\/ �A`Z4 � S\� 01zÓ, KJf �Z4 �P X �S D\� 01���.

• D\ ��� w� ¡å D\ �� � U�V lock/ áf F24 lock table �@� ÎDf 12207/ return2Ó Ö×ØÙ?TI(rollback)zf �x��. Ö×ØÙ �� �e �@? locktable �@� ÷ü ¨� A����.

• DEF U�V�^ =D U�V� lock table �@/ 01� ÷x��.

• l? Ö×ØÙ� lock table �@/ O) H Æ�� wx��.

56

7� lock table in share mode- 01234 í�D U�V �= select ܯE ��� w> .��. lock table in exclusive mode- 01234U�V �= delete, insert, update ܯE �� � 2^- v³> .��.

89 �� – set

�# $% "#SQL92 Transact-SQL ÎÍ

328

1 2 ���� ��: nullif – revoke

nullif�� �], SQL !"#/ f�2W case !"#/ ��2O 2 !"#

� 01� w� MN �: 01� wx��.

�� nullif(expression, expression)

���� nullif !"#� 2/ kª.��. { H� !"#� H� !"#$ lZ4 nullif� NULL/ return.��. { H� !"#� H� !"#$ �[4 nullif� { H� !"#/ return.��.

expression_ �[, Y , � , �ã¾� ·� ÕÛ ÑÕ&^ kÖ ÑÕ&�Ñ8� _ �[, Y R � � MN �.i��. !"# ��&¯� �1? 179 h�f� "!"#"/ ��2�D�.

�� 1 titles U�V� titles R type/ �,.��. Ê ��� UNDECIDED�4 nullif� NULL 2/ return.��.

select title, nullif(type, "UNDECIDED")from titles

�� 2 '� 1/ S¹2� �� ­®i��.select title, case when type = "UNDECIDED" then NULL else type endfrom titles

�� • nullif !"#? case !"#/ �Å.��.

• nullif !"#/ 0124 when...then �7/ 012� �� ÝÞ�]/ \p� !"#Z� !"� wS �7 !X SQL !"#/ p¶¿� wx��.

• SQL !"#/ 01� w� MN �:� nullif !"#/01� wx��.

329

online database

• �¼� 2^ �Y� case !"# 8$� NULL� é: 2/ return=> .��. '- t4 �y$ l? !"#� w/ wx��.

select price, coalesce (NULL, NULL, NULL)from titles

� ¡å �y$ l? ) ÎDfv ^T>��.

All result expressions in a CASE expression mustnot be NULL.

• ¾�v �#� ��� ��/ Ìt4 "DEF R 01& A� ��� ��"� %. M� !"#� ��� ��� ��� ¨� case !"# 8$� ��� ��? ��� �� ¦\ �=8A���. char R int� l� Adaptive Serverv ^D±Z� ³� ÷� ��� ��/ fA24 ¾� �&v �Í.��.

56

7� nullif ��? Á�Ö� MN 01&© �C���. �ä� %¬�01 ��� ��2f �x��.

89 �� – case, coalesce, select, if...else, where �

online database�� AY �� ¶� � C1Z� 01� w© ���Q�E- !D2

Ó ��� ¡å ��� ���Q�E- Adaptive Server� "� ��E� 6K���.��. Ú, standby_access üÙZ� 'G� Ö×ØÙ �K- ��� �� ���Q�E- �ä§Z� �A.��.

�� online database database_name [for standby_access]

���� database_name�ä§Z� �A� ���Q�E� �[/ fA.��.

for standby_access���Q�E _3 w� Ö×ØÙ� ÷�� vA éÒ ���Q�E- �ä§Z� �A.��.

�� 1 �� ¶�v C�� � pubs2 ���Q�E- C1Z� 01� w© ÌX��.

�# $% "#SQL92 Transact-SQL ÎÍ

330

12A 9B: nullif – revoke

online database pubs2

�� 2 inventory_db ���Q�E- �ä§Z� �A.��. dumptran...with standby_access- �= á? Ö×ØÙ �K 'G� inventory_db- ��� � 01���.

online database inventory_db for standby_access

�� • online database �@? AY ���Q�E ·� Ö×ØÙ �K �� ¶� � ���Q�E- C1Z� 01� w¬¹ �ä§Z� �A.��.

• load database �@� Æ�z4 ���Q�E� Y�� "�Gä§"Z� �A���. �Gä§ Y�� sysdatabases DEF U�V �AzÓ online database �@� C�� �ef �A� Y�� nx��.

• MN Ö×ØÙ �Kv ��� �ef online database �@/ u�Æ�24 � �4!. �@ ¶�� �y$ lx��.

• load database

• load transaction(� �Y� load transaction� w/ wy)

• online database

• "� �䧧 ���Q�E �= online database- Æ�24Ø ¨�¬ �Í2f �Ó ) ÎDf¬ Í�zf �x��.

• online database...for standby_access� dump transaction...with standby_access- 012O 'G� Ö×ØÙ ��Ì �Ú 01� wx��. dump transaction...with standby access- 012f �Ó 'G� Ö×ØÙ �K- ��� � online database...for standby_access- 0124 online database �@? ) ÎDf-Í�2Ó �&v �Í.��.

• sp_helpdb- 0124 ���Q�E� "� Y�v �䧧f,�S ܯE- �� �䧧f, �G䧧f L§� wx��.

S�TU�� � ��

• online database� ��� ¡å ��� ���Q�E R Ö×ØÙ�K 'G� 6K���- D52O ���Q�Ev AdaptiveServer� "� ��E� U³z¬¹ ÌX��. 6K���v C�� � ���Q�E- C1Z� 01� w© ���. ¨�� )v �Í24 ���Q�E� �Gä§Z� nx��.

• online database� ���Q�E ·� Ö×ØÙ �K �� ¶� �Ì ��2Ó ��� �:^ 6K���� ��2f �x��. Adaptive Serverv � ��E� 6K���z4 � �P�Ñ�� MN ���Q�E� &dZ� 6K������.

331

open

• online database� ��E 10.0 �Y� 01& ���Q�EÌ 6K���.��.

• online database� ���Q�E- 6K���� � �� 6K���� ���Q�E- 'G2O Adaptive Server� "� ��E� +:2� 'G- Ì��D�. dump transaction �@/ Æ�234 å� 6K���� ���Q�E- 'G=> .��.

56

7� DEF ��&, ���Q�E ¼�& ·� �;& T(role)� w� 01&Ì online database- Æ�� wx��.

89 �� – dump database, dump transaction, load database, load transaction

��� ���� – sp_helpdb

open�� ¨�- �= Ä�- ?��.

�� open cursor_name

���� cursor_name _3� �� �[i��.

�[� authors_crsr§ Ä�- ?��.

open authors_crsr

�� • open? Ä�- ?��. Ä�- 0124 �/ g%±Z� A2<^ R�� wx��. fetch, update R delete 7/ 01234å� Ä�- _> .��. Ä� �� &¯� �1? Transact-SQL User's Guide- ��2�D�.

• Ä�v �9 _3 w<^ declare cursor 7Z� Ä�- Ìtf �? ¡å Adaptive Server� ) ÎDf- return.��.

• Ä�- _4 Adaptive Server� declare cursor 7 fA� Ä�- A�2� select 7/ �v2Ó Ä� 8$ set? ¨� 01� w© ���.

• Ä�� ¨y _� � Ä� 8$ set� { H� � ¢ �:.��.

�# $% "#SQL92 Transact-SQL ÎÍ

332

12A 9B: nullif – revoke

• ÑË Ö×ØÙ M�- �A24 "� Z�¿� Ö×ØÙ� ÷/¡å Adaptive Server� open 7/ 012O Ö×ØÙ/ D5.��.

56

7� open ��? MN 01&© Á�Ö� �C���.

89 �� – close, declare cursor, fetch

order by ��� fA� _� ¾� 8$- Aµ� ¶�� return.��.

�� [Start of select statement]

[order by {[table_name.| view_name.]column_name | select_list_number | expression} [asc | desc]

[,{[table_name.| view_name.] column_name select_list_number|expression} [asc

|desc]]...]

[End of select statement]

���� order by_/ SXZ� 8$- Aµ.��.

asc�[�¶Z� 8$- Aµ.��. asc ·� desc- fA2f �Z4 ascv fA� Z� \½���.

desc�8�¶Z� 8$- Aµ.��.

�� 1 vÏ� $19.99B� k@ Ê/ �,� �y �¸/ M�A ¶�� ^_.��.

select title, type, price from titles where price > $19.99 order by title

title type price------------------------------------------------------------ ------------ -------------------------

�# $% "#SQL92 +£ (� >*

333

order by !

But Is It User Friendly? popular_comp 22.95Computer Phobic and Non-Phobic Individuals: Behavior Variations psychology 21.59Onions, Leeks, and Garlic: Cooking Secrets of the Mediterranean trad_cook 20.95Secrets of Silicon Valley popular_comp 20.00

�� 2 titles U�V� �8�¶$ M�A ¶�� ��% Ê/ ^_� �y ù ��� �� vÏ R ��/ ¦Õ.��.

select type, price, advance from titles order by type desc compute avg(price), avg(advance) by type

�� 3 ��/ ��ÜZ� ^B �y v� x? Ü � v� t? Ü � ¶�� titles U�V� �¸ ID- ^_.��.

select title_id, advance/total_salesfrom titlesorder by advance/total_sales

title_id -------- ------------------------ MC3026 NULL PC9999 NULL MC2222 0.00 TC4203 0.26 PS3333 0.49 BU2075 0.54 MC3021 0.67 PC1035 0.80 PS2091 1.11 PS7777 1.20 BU1032 1.22 BU7832 1.22 BU1111 1.29 PC8888 1.95 TC7777 1.95 PS1372 18.67 TC3218 18.67 PS2106 54.05

334

12A 9B: nullif – revoke

�� 4 Ê �¸$ ��/ ��% ¶�� ^_2Ó ��z� _� �[/ C��.

select title as BookName, type as Typefrom titlesorder by Type

�� • order by� fA� _� ¾� 8$- Aµ� ¶�� return.��.order by� select �@� +,i��.

• Transact-SQL�� order by- 012O �, ¸¹ ^T^f�? ¢¸/ Aµ� wx��. _ �¸, _ �[, !"#, v�(alias) �[(�, ¸¹ fA� ¡å) ·� �, ¸¹� ¢¸�:- ^T�� HU(select_list_number)- SXZ� Aµ� wx��.

• select_list_number- SXZ� Aµ24 order by u� ��2�_� select ¸¹ ��z> 2Ó select ¸¹? %!(*)v � ÷x��.

• ¾� 8$- �9w� ¶�� !D234 order by- 01.��.order by u� ÷Z4 Adaptive Serverv 8$- return2� ¶�- �� ÷x��.

� �m

• order by u� 31z� _ � �� 31gi��.

• order by u �= fAz� MN _� �� 0�� .? 2014 �Ö- 6$� ÷x��.

• text ·� image ��� �� _�� order by- 01� ÷x��.

• �ã¾�� � A�� order by u�^ compute u ·� into ìý�- ��� ÷x��. í�� order by ¸¹�� �ã¾�- 01� ÷x��.

• select 7 order by u� ��� ¡å� �P ·� � ��Ä�� 8$ set/ 6��Ö� ÷x��. 6��Ö� w� Ä� ±1z� �� �� &¯� �1? Transact-SQL User'sGuide- ��2�D�

• compute by- 01� ¡å� order by u¬ 01=> .��.compute by � ^_z� !"#? order by � ^_z� !"#$ l<^ 2� s.�> 2Ó, ®¯� ��¯Z� l?¶�O> 2W, l? !"#Z� D5=> 2Ó, Ø !"#¬]s²4 ² ���. '- t �y$ l? order by u� w/ wx��.

335

order by !

order by a, b, c

compute by u? �y �� 2^ ·� �Åv � wx��.

compute by a, b, ccompute by a, bcompute by a

by ÷� compute ìý�- 012O .¦, �Å g */ Í�� wx��. � ¡å order by� �, 0¢i��.

9Ð IP

• order by� ¡å NULL 2� �� 2B� å�.��.

• Adaptive Server�� Aµ ¶�(�. ¶�)� ���v Aµz� ­®/ 8A.��. Aµ ¶� �, ¢¸? binary, 0�#,�/¼7& k�Ô, 01& �A �/¼7& k�Ô, �/¼7& R)� k�Ô *i��. jA ´v� � �ä jA Aµ ¶�v �C� ¬ wx��.

� 12-1: '� ]8 \� F�� 34

• DEF G�DH sp_helpsort� Adaptive Server �:� Aµ¶�- BÓ.��.

DO ~�

• Adaptive Server� Aµ ¶� l? 2/ vA g� �� w� ¡å �/ Aµ2� � �y õö� 01���.

• order by u �[� fA� _� 2� kª���.

Adaptive Server �� �� order by �3) F�0 =3binary ² F, F?Q J� � F,9 Y, ¹�£ 3Q �� ·Ê ���R X�

?��. binary ²� ·Ê cF,R `F,Ë� ZÌ X�?��.binary X� ²� �Z ¹�£ F, F?4 w: � : ��.��.

*�¯ ² cF,R W# `F,Ë� ZÌ X�?��(c/`F, E<). *�¯ ²� F,9 �[: \� �¯4 �¯2� \�IS T# �¯ ]Q �æ4 X�?��.

*�¯ ², c/`F, ¼E< ���R *�¯ X� ²" X�2Si c/`F, ��R �¯2S TU��. cF,� 0� ̀ F,� Ý 2� X� øùQ ú�^ c" X����.

ãa w- J� c/`F, ¼E< *�¯ ²

*+, úX w§Q² cF,R `F, Ä�Ë� ZÌ X�?��.where �Q²� W� ¼^R (ÀO P c/`F, ��R �¯2S TU��.

*�¯ ², c/`F, D \� ¼E<

���R *�¯ X� ²" X�2Si c/`F, ��R �¯2S T� F,9 \�^ �¯4 Â�^ ¼\� F,� Ý 2� è?��. \�^ F,� \�IS T# F,R X� ¿VQ² _??��.

336

12A 9B: nullif – revoke

• �� _ 2� lZ4 �Å �� �A 2� �Ö p��kª���. � kª� ¾�^ �Ò create table u� _��[� fA� ¶�v é�ä _� �,±Z� H�� ¶� �ä �� ��s��. Ú ���� MN ÓA 0�_ ¶��� H�� �y MN v  0� _ ¶���H����.

• �� l/ ¡å � IDv kª���.

�y$ l? U�V� w/ wx��.

create table sortdemo (lname varchar(20), init char(1) not null}

� U�V� ���� �y$ lx��.

lname init ---------- ---- Smith B SMITH Csmith A

� ¡å lname/ SXZ� Aµ24 �y 8$- áx��.

lname init ---------- ---- smith A Smith B SMITH C

ÓA 0� char ���(init _)v å� �,±Z� H�zm�order by� �A 2§ "Asmith", "BSmith" R "CSMITH" S62O �t �/ Aµ.��.

2fÌ init� ��� varchar�4 lname _� å� H�� �y init_� H����. kª� �A 2§ "SMITHC", "SmithB" R"smithA"� ��fÓ �? � ¶��� return���.

KLHI ÑÒ

• desc ìý�- order by u 0124 ¾� üÈ@�H� 8$-�8�¶Z� return2� � ��� 56 U�V$ Aµ p¦-�<2� �]/ �,� wx��. � �±¿� ù §iE h�f� �� h�f �§� �y,� §iE� page chain/ «¶Z� ÝÞ.��.

337

order by !

� �±¿- 01234 order by u� _� §iE ¶�� +:=> .��. �)� _? ì� 2� s.� � wfÌ, � �{ H� ì- ��2� c 2� s.� z> .��. orderby u �[� fA� _� §iE ì� Y� s.§ ¡å��8�¶ ÝÞ �±¿- 01� ÷x��.

¾� �§� ��z w�4 ì� c 2� s. ���� 0¢� azz� � MN U�V/ �8�¶ ì ¶�� ÝÞ� wx��. ·� �� U�V/ �[�¶Z� ÝÞ24� �§ w� 2^ �Y� U�V �8�¶ ÝÞ �±¿-01� ¬ wx��.

• �� 01& G�¯Ev 6��Ö^ R�- �2S �= ÝÞ�+ � �8�¶ ÝÞ/ �24 ��q(deadlock)/ +Z� wx��. h�f Ô� R �¼ �¬ ��q(deadlock)/ +Z� wx��. sp_sysmon DEF G�DH- 012O �P� ��q(deadlock)/ �±2<^ print deadlock information ���g  - 012O ��q(deadlock) AB- ) �K� B� wx��.

• ¤1 G�K¥� 8$- �8�¶Z� return=> 2fÌ �8�¶ ÝÞ �±¿v ��q(deadlock) 7�- +Z� ¡å �y$ l? · vf ­®Z� 7�- =8� wx��.

• �8�¶ ÝÞ �= Ö×ØÙ isolation level 0 ÝÞ/ 01.��. isolation level 0 øS� �$ �� &¯� �1? Performance and Tuning Guide- ��2�D�.

• desc- 012� MN ¾�v U�V/ �[�¶Z� ÝÞ2Ó 8$ set/ �8�¶Z� Aµ2¬¹ 234 allowbackward scans �� �g  � �8�¶ ÝÞ �±¿- 01� ÷© 24 ���. &¯� �1? ��� �� ���- ��2�D�.

• 7�v z� �8�¶ ÝÞ/ p¦� ^D��. { H�p¦�� ��� �/ �,2O �[�¶Z� =D U�V Ó H� p¦�� ��� �/ =D U�V��8�¶Z� �,.��.

• �m ì 2� £�2S �7 �P|� h�f- ��� clustered§iEv �� ÝÞ 01z� ¡å �8�¶ ÝÞ �= return� 8$ set? �[�¶ ÝÞZ� return� 8$ set� «¶$ C�2© +:2f �/ wx��. fA� ì 2? ¶���returnzfÌ �P|� h�f� l? ì �� �� ¶�� �- wx��. clustered §iE� �P|� h�fv H�z�­® �� &¯� �1? Performance and Tuning Guide- ��2�D�.

338

12A 9B: nullif – revoke

56

89 �� – compute �, declare, group by � having �, select, where �

��� ���� – sp_configure, sp_helpsort, sp_lock, sp_sysmon

prepare transaction�� 2 Phase Commit ¤1 G�K¥� DB-Library 012O �Pv

Ö×ØÙ/ Ä�� Xkv zÈ�f L§.��.

�� prepare tran[saction]

�� • &¯� �1? �y/ ��2�D�.

56

89 �� – begin transaction, begin transaction, rollback, save transaction

print�� 01& A� ÎDf- 01&� ¿4 §Ë.��.

�� print{format_string | @local_variable | @@global_variable}

[, arg_list]

�# $% "# ��

SQL92 +£ (� >* union ÂG,- *+D P SELECT F9 order by �Q �"V �N|4 SX2� k# Transact-SQL ÎÍ.��.

�# $% "#SQL92 Transact-SQL ÎÍ

339

print

���� format_string  ^ 7&_� � wx��. format_string� �� 0��1023 �Öi��.

�# 7&_? ¶� Y�÷� �� 20g� Ó�� �: !D&- ��� wx��. �)� �: !D&� ÎDf� àEÖv`ä��Ö© B�h � format_string � �� MN §&��#� �A� �1Z� E��.

�# 7&_� �� 7® ��- vA ��  ³� � §&� ¶�- � w¬¹ �: !D& HUv �os��. §& �� �: !D&� " %nn !" �#, Ú ¤±Ö SU(%), 1� 20 0�� A , ©F!( !)v �ð� �� �#Z� !D���. A �§& ¸¹� 7&_ w� §& HU- ^T���. '- t,"%1!"? �Ò P�� { H� §&�Ó "%2!"� H� §&i��.

� ­®Z� §&� �:- ^T�4 §&v �Y � !Dz� ¶�v �- ¡å¬  ³/ AL2© �� wx��.

'- t, �y$ l? ; ÎDfv w/ wx��.

%1! is not allowed in %2!.

� ÎDf� (+ P�? �y$ lx��.

%1! ist in %2! nicht zulassig.

� ÎDf� +ñ P�? �y$ lx��.

� '�� "%1!"? "%2!"� @vvf� ¯ vf � w� d+� §&- ^T���. � '��  ³� �#� BB ���§&� ¶� �S- BO ���.

@local_variablechar, nchar, varchar ·� nvarchar ���<^ &�� 01� 7:·� G�DH �� ��z> .��.

@@global_variable char ·� varchar ���<^ @@version$ l� �)� ��Z� &d  ³� w> .��. "� �+� 7& �� �«   � @@versioni��.

340

12A 9B: nullif – revoke

arg_listy@� �Ô� +��   ^ Y v � wx��. "%nn !" �#� �: !D&v ��� �# 7&_� �Czf �Z4 arg_list� �, 0¢i��. � ¡å arg_list� �¼� v� t? �:!D&� l? � §&v w> .��. §&� text ·� image- �Ð� MN ��� ��� � wÓ �B ÎDf ��zS� 7& ��� ��Z�  ³���.

�� 1 authors U�V å3 HU 94705 0� H&v w� ¡å"Berkeley author"- §Ë.��.

if exists (select postalcode from authors where postalcode = ’94705’) print "Berkeley author"

�� 2   - ��2Ó   2/ �{� �y 2/ §Ë.��.

declare @msg char(50) select @msg = "What’s up, doc?" print @msg

What’s up, doc?

�� 3   � �: !D&� 01/ ÎDf� BO ���.

declare @tabname varchar(30) select @tabname = "titles"

declare @username varchar(30) select @username = "ezekiel"

print "The table ’%1!’ is not owned by the user ’%2!’.", @tabname, @username

The table ’titles’ is not owned by the user ’ezekiel.’

�� • �Å �� format_string$ MN §&� �� �� 7&_ 0��1024 �Öi��.

• �# 7&_ �: !D&- 012� ¡å 7&_� ù �:!D& n� 1,� n-1ef� �: !D&v HU+ ��� ÷fÌ l? 7&_ w> ��� � ½�=> .��. '-t, �: !D& 2v �# 7&_ ÷Z4 �: !D& 1$ 3/ l? 7&_ vh ÷x��. �# 7&_� .&- Í]24 printv Æ�� � ) ÎDfv Í����.

341

quiesce database

• arg_list� format_string� ù �: !D& �� §&v ��z> 2W, KJf �/ ¡å Ö×ØÙ� �f���. ·��: !D&B� �? � §&- vh wx��.

• ) ÎDf� +,� ��� ¤±Ö SU- ��234 format_string g� ¤±Ö SU("%%")- 01.��. p+ ¤±Ö SU("%")- �: !D&� 01zf �� format_string ��24 Adaptive Server� ) ÎDf- return.��.

§&� NULL� �v� ¡å Q 7&_�  ³���. �� Q 7&_� ��zf �© 234 isnull � - 01.��. '- t, �y !"#� @argv NULL+ wx��.

declare @arg varchar(30) select @arg = isnull(col1, "nothing") from table_a where ...print "I think we have %1! here", @arg

� ¡å �y ÎDfv §Ë���.

I think we have nothing here.

• =�� ¤1 G�K¥ 012S �= 01& A� ÎDf-sysusermessages DEF U�V �v� wx��. sysusermessages ÎDf- �v234 sp_addmessage- 012Ó print R raiserror 01� ÎDf- ÝÞ234 sp_getmessage- 01.��.

• 01& A� ) ÎDf- §Ë2Ó ) HU- @@errorH�234 print �� raiserror- 01.��.

56

7� print ��? Á�Ö� MN 01&© �C���. �ä� %¬�01 ��� ��2f �x��.

89 �� – declare, raiserror

��� ���� – sp_addmessage, sp_getmessage

quiesce database�� fA� ���Q�E ¸¹� 6��Ö- +D �p2Ó �D D5

.��.

�# $% "#SQL92 Transact-SQL ÎÍ

342

12A 9B: nullif – revoke

�� quiesce database tag_name hold dbname [, dbname] ...[for external dump

·�

quiesce database tag_name release

���� tag_name���Q�E ¸¹/ hold ·� release fA2� 01& A� �[i��. tag_name? #%& �� õö �ä> .��.

database���Q�E �[i��.

for external dump¸¹ w� ���Q�E 6��Öv +D �pzÈ/ � +, S�/ 012O MN ;</ $� ���Q�E Á �E-Adaptive Server Ð,� °�±Z� m0�/ fA.��. m056? dump database� load database �� Æ�z� i��.

�� 1 salesdb R ordersdb�� 6��Ö 56/ +D �p.��.

quiesce database report_dbs hold salesdb, ordersdb

�� 2 report_dbsä� ��V� fA� ���Q�E� 6��Ö 56/ �D D5.��.

quiesce database report_dbs release

�� 3 pubs2 ���Q�E �� 6��Ö 56/ +D �p2Ó� ���Q�E� Ð, m0ñ/ Ìt3� �¬- ^T���.

quiesce database pubs_tag hold pubs2 for external dump

�� • quiesce database- hold ìý�� �Ú 0124 fA� ���Q�E� MN 6��Öv +D �p���. +D �p� ���Q�E� Ö×ØÙ? ���- 6��Ö� ÷Ó ÅÂ�§Ö G�¯E R A� 56 G�¯E� l? IKä�� 56? +D �p� Y�� ���Q�E- M ]s���.

• quiesce database- release ìý�� �Ú 0124 +D �p�Y�� ���Q�E� 6��Ö- �D D5� wx��.

• quiesce database- for external dump u$ �Ú 0124 ���Q�E� Ð, m0ñ/ Ìt3� / ^T���. dump R load���Q�E� �./ ��2O Æ����.

• quiesce database hold R release �@/ l? 01& ¯Ù� Æ�� ��� ÷x��.

343

raiserror

• quiesce database hold �@ fA� ���Q�E Xk Y�� ÔÕ� Ö×ØÙ�^ �� ���Q�E Ö×ØÙ� ���¡å Adaptive Server� �)� Ö×ØÙ� C�z¬¹ 56��� D\ d² �S.��. Ö×ØÙ� � �� D\ d² C�zf �Z4 quiesce database hold �&v �Í.��.

• Adaptive Serverv quiesce database hold fA� ���Q�E� dump database ·� dump transaction �@/ Æ�2� ��4 ���Q�E� dump �@� C�� �Ì +D �p���.

• ���Q�E� 6��Öv +D �p� Y�� dump database·� dump transaction �@/ ={ ���Q�E� Æ�24quiesce database release� ���Q�Ev =�� �ef AdaptiveServer� �t �@/ �p.��.

• quiesce database hold �@ 2^ �� 8g� ���Q�E- fA� wx��. �� ���Q�E �� 6��Ö- +D �p=> 24 quiesce database hold �@/ �v� Æ�2�D�.

7� quiesce database ��? DEF ��&© Á�Ö� �C���.

89 �� – dump database, dump transaction

��� ���� – sp_helpdb, sp_who

raiserror�� 01& A� ) ÎDf- 01& ¿4 !D2Ó DEF |ÒK

- �A2O )v �Í`y/ S¹.��.

�� raiserror error_number [{format_string | @local_variable}] [, arg_list][with errordata restricted_select_list]

344

12A 9B: nullif – revoke

���� error_number17,000B� 4 2/ vA A ·� �Å   i��. error_numberv 17,000� 19,999 0� wÓ format_string� ÷<^ kwZ4("") Adaptive Server� master ���Q�E� sysmessagesU�V� ) ÎDf àEÖ- ÝÞ.��. �)� ) ÎDf� �g DEF G�DH 01���.

error_numberv 20,000 �Y�Ó format_string� ÷<^ k wZ4 raiserror� ¾� ·� �� G�DHv D5� ���Q�E�sysusermessages U�V� ÎDf àEÖ- ÝÞ.��. AdaptiveServer� "� �A� @@langidv A�� �� sysmessages ·� sysusermessages� ÎDf ÝÞ/ D¬.��.

format_string�� 0�v 1024 �Ö§ 7&_i��. �Å   format_string/ ��2O raiserror� �Ú �Å   - 01� ¬ wx��(@local_variable ��).

raiserror� §Ë� 7&_� �: !D&- §#.��. �# 7&_� ¶� Y�÷� �� 20g� Ó�� �: !D&v ��� wx��. �)� �: !D&� ÎDf� àEÖv `ä��Ö© B�h � format_string � �� MN §&� �#��A� �1Z� E��.

�# 7&_� �� 7® ��- vA ��  ³� � §&� ¶�- � w¬¹ �: !D& HUv �os��. §& �� �: !D&� "%nn!" �#, Ú ¤±Ö SU(%), 1� 20 0�� A , ©F!(!)v �ð� �� �#Z� !D���. A � §& ¸¹� 7&_ w� §& HU- ^T���. '- t,"%1!"? �Ò P�� { H� §&�Ó "%2!"� H� §&i��.

� ­®Z� §&� �:- ^T�4 §&v �Y � !Dz� ¶�v �ñ � !Dz� ¶�� �- ¡å¬  ³/ AL2© �� wx��.

'- t, �y$ l? ; ÎDfv w/ wx��.

%1! is not allowed in %2!.

� ÎDf� (+ P�? �y$ lx��.

345

raiserror

%1! ist in %2! nicht zulassig.

� ÎDf� +ñ P�? �y$ lx��.

� '�� "%1!"? "%2!"� @vvf� ¯ vf � w� d+� §&- ^T���. � '��  ³� �#� BB ���§&� ¶� �S- BO ���.

@local_variableformat_string 2� ��� �Å   i��. char ·� varchar ���<^ &�� 01� 7: ·� G�DH �� ��z>.��.

arg_listy@� �Ô� +��   ^ Y i��. "%nn !" �#� �: !D&v ��� �# 7&_� �Czf �Z4 arg_list� �, 0¢i��. §&� text ·� image- �Ð� MN ��� ��� � wÓ �B 7&_ ��zS � char ��� ��Z�  ³���.

§&� NULL� �v� ¡å Adaptive Server �= Q char 7&_�  ³���.

with errordataClient-Library™ G�K¥ L� ) ���- �C.��.

restricted_select_list2^ �Y� �y ¢¸Z� �����.

• create table ¶� w� MN �/ ^T�� "*"

• _ �[/ �2� ¶��� ^_� ¸¹. S£� IDENTITY_/ �,� � U�V �[Z� �A� syb_identity ìý�-��� �:� Æ� _ �[Z� �Å� wx��.

• �y$ l� � IDENTITY _/ 8$ U�V �v2¬¹fA.��.

column_name = identity(precision)

• �y �#$ l? Á�Ö _ �¸(_ �[)/ ªÅ.��.

column_heading = column_name

·�

346

12A 9B: nullif – revoke

column_name column_heading

·�

column_name as column_heading

�)� �#� _ �¸/ �+!� �/ wx��. �¸���� #%&v é: ¡å, Ú '(�<^ j 7&� D52<^ CI ·� 7� ,Uv ��� ¡å� �+!��> .��.

• !"#(_ �[, Y , � , �ã¾� ·� ÕÛ ÑÕ&^ kÖ ÑÕ&� Ñ8� _ �[, Y , � � =� �.)

• �� � ^ s¦

• � ^_� ¢¸� =� �.

·� restricted_select_list� �y �#Z�   �{/ �� wx��.

@variable = expression [, @variable = expression ...]

restricted_select_list �� �� 0¢? �y$ lx��.

• �� restricted_select_list üÙ$ �Ú   �{/ 8.� ÷x��.

• from, where ·� �� select u/ restricted_select_list 01� ÷x��.

• "*"- 012O restricted_select_list� MN _/ ^T� ÷x��.

&¯� �1? Transact-SQL User’s Guide- ��2�D�.

�� 1 � �� G�DH '�� @tabname �g  � �C� U�V/ èf F� ¡å )- return.��.

create procedure showtable_sp @tabname varchar(18) as if not exists (select name from sysobjects where name = @tabname) begin raiserror 99999 "Table %1! not found.", @tabname end else begin select sysobjects.name, type, crdate, indid

347

raiserror

from sysindexes, sysobjects where sysobjects.name = @tabname and sysobjects.id = sysindexes.id end

�� 2 � '�� ÎDf- sysusermessages �v� �y �Å §&- �C24� raiserror� ÎDf- UEÖ.��.

sp_addmessage 25001,"There is already a remote user named ’%1!’for remote server ’%2!’."

raiserror 25001, jane, myserver

�� 3 � '�� with errordata üÙ/ 012O L� ) ���column R server- `ä��Ö ¤1 G�K¥ return2Ó ���_$ 01� �P- ^T���.

raiserror 20100 "Login must be at least 5 characters long" with errordata "column" =

"login", "server" = @@servername

�� • 01& A� ÎDf� '� 1$ 3�� l� =D� Í�2<^ '� 2� ñ ¨� =�� ¤1 G�K¥ 01z¬¹sysusermessages DEF U�V �v� wx��. sysusermessages ÎDf- �v234 sp_addmessage- 012Ó print R raiserror 01� ÎDf- ÝÞ234 sp_getmessage- 01.��.

• 01& A� ) ÎDf� ) HU� 20,000B� Ä> 2W��2? 2,147,483,647(231 -1)i��.

• MN 01& A� ) ÎDf� ¬ù¬ X? 16�W � X? 01& �� :�± )v ÷y/ ^T���.

• �Å �� format_string$ MN §&� �� �� 7&_ 0��1024 �Öi��.

• �# 7&_ �: !D&- 012� ¡å 7&_� ù �:!D& n� 1,� n-1ef� �: !D&v HU+ ��� ÷fÌ l? 7&_ w> ��� � ½�=> .��. '-t, �: !D& 2v �# 7&_ ÷�4 �: !D& 1$ 3/ l? 7&_ vh ÷x��. �# 7&_� .&- Í]24 raiserrorv Æ�� � ) ÎDfv Í����.

348

12A 9B: nullif – revoke

• format_string� �: !D& - SXZ� §&� v s�±? ¡å� ) ÎDfv !DzÓ Ö×ØÙ� �f���.format_string� �: !D&B� �? � §&- vh wx��.

• ) ÎDf� +,� ��� ¤±Ö SU- ��234 format_string g� ¤±Ö SU("%%")- 01.��. p+ ¤±Ö SU("%")- �: !D&� 012f �� format_string ��24 Adaptive Server� ) ÎDf- return.��.

• §&� NULL� �v� ¡å Q char 7&_� return���. �� Q 7&_� ��zf �© 234 isnull � - 01.��.

• raiserrorv Æ�z4 ) HU� DEF� �á Í�� )HU- H�2� @@error �«   B����.

• @@error ) HU- H�234 print �� raiserror- 01.��.

• raiserror arg_list- ��234 { H� §& ¢� error_number·� format_string � y@- p��. L� ) ���- ��234 y@v é�ä CI/ 012O error_number, format_string ·� arg_list� { H� extended_value- �Ô.��.

56

7� raiserror ��? MN 01&© Á�Ö� �C���. �ä� %¬� 01 ��� ��2f �x��.

89 �� – declare, print

��� ���� – sp_addmessage, sp_getmessage

readtext�� fA� �G5� D52O fA� � �Ö ·� 7&̵ text

R image 2/ øx��.

�� readtext [[database.]owner.]table_name.column_nametext_pointer offset size [holdlock | noholdlock] [readpast]

�# $% "#SQL92 Transact-SQL ÎÍ

349

readtext

[using {bytes | chars | characters}][at isolation {

[ read uncommitted | 0 ] | [ read committed | 1 ] |[ repeatable read | 2 ]| [ serializable | 3 ] } ]

���� table_name.column_nameU�V �[/ ��=> 2� text ·� image _� �[i��. U�V� �� ���Q�E w� ¡å� ���Q�E �[/fA2Ó, ={ �[/ vA � �Y� U�V� ���Q�E£�� ¡å� ¼�&� �[/ fA.��. owner� Á�Ö2? "� 01&�W database� Á�Ö2? "� ���Q�Ei��.

text_pointertext ·� image ��� �§�- H�2� varbinary(16) 2i��. � 2/ L§234 textptr � - 01.��('� 1 ��).text R image ���� l? Ñ8� h�f s. �� U�V _� H�zf �Ó %¬� Ñ8� h�f s. H����. Æ��: �� �§�� ���� �Ú H�zW textptrv � �§�- return.��.

offsettext ·� image ���- øS � ]s¹ �Ö^ 7& - fA.��.

sizeø/ ���� �Ö ·� 7& - fA.��.

holdlockÖ×ØÙ� ô¾ �ef øS- �= àEÖ 2/ lock.��. �� 01&� � 2/ ø/ � wfÌ A� � ÷x��.

noholdlock�Pv "� ±1 �§ Ö×ØÙ isolation level Y�÷� � 7� Æ�z� d² áA lock/ B�2f �© .��. ¾��holdlock R noholdlock üÙ/ M fA� � ÷x��.

readpastreadtextv �S2<^ ÎDf- Í�2f �Ó exclusive lock/vA �/ &dZ� ]s²¬¹ fA.��.

350

12A 9B: nullif – revoke

usingreadtextv offset$ size �g  - �Ö (bytes)� =-2�f,textptr 7&(chars ·� characters� d�)� =-2�f- fA.��. � üÙ? p+ �Ö 7&^ image 2(readtext� image2/ �Ö p�� øy)$ �Ú 01z4 é� �$v ÷x��.using üÙ/ fA2f �Z4 readtext� size R offset §&- �Ö� =-.��.

at isolation¾�� isolation level(0, 1 ·� 3)/ fA.��. � u/ Í]24 ¾�� &�� Æ� �§ ¯Ù� isolation level(Sñ±Z� 1)/ 01.��. at isolation read uncommitted- fA2� ¾�holdlock/ fA24 Adaptive Server� ¡Ó- !D2Ó at isolationu/ �D.��. �� isolation level� ¡å holdlock? at isolationuB� å��/ vs��.

read uncommitted¾� isolation level 0/ fA.��. at isolation u/ 012Oread uncommitted �� 0/ fA� wx��.

read committed¾� isolation level 1/ fA.��. at isolation u/ 012Oread committed �� "1"/ fA� wx��.

repeatable read ¾� isolation level 2- fA.��. at isolation u/ 012Oserializable �� "2"- fA� wx��.

serializable¾� isolation level 3/ fA.��. at isolation u/ 012Oserializable �� "3"/ fA� wx��.

�� 1 copy _� H�� O� H�ef� 7&- �,.��.

declare @val varbinary(16) select @val = textptr(copy) from blurbswhere au_id = "648-92-1872" readtext blurbs.copy @val 1 5 using chars

�� 2

declare @val varbinary(16) select @val = textptr(copy) from blurbs readpastwhere au_id = "648-92-1872" readtext blurbs.copy @val 1 5 readpast using chars

351

readtext

�� • textptr � � 16 �Ö �A 7&_(àEÖ �§�)/ fA��� text ·� image _ return2<^ ¾�v � �Y� �/return� ¡å� @fO �� text ·� image _ return.��.àEÖ �§�- H�2S �= �Å   - ��� �yreadtext� �Ú ���   - 012� � v� !x��.

• return� ���� �Ö - ��2� @@textsize �«   � 2? readtext fA� ÂSB� 5/ ¡å � ÂS- �Å.��. @@textsize� 2/  ¡234 set textsize- 012�D�.

• �Ö- �G5$ ÂS� 01� ¡å Adaptive Serverv return� text ���� D5 ·� ô ,Ô� ,Ô 7&- è/ wx��. �)� ¡å 7& s.  ³� �Az4 àEÖv ̀ ä��Ö returnzS � ù ,Ô 7&� °y!(?)� E��.

• Adaptive Server� readtext �@ ¤!2O `ä��Ö© B� �Ö - L§=> .��. offset R sizev �Ö§ ¡åreturnz� àEÖ� �Ö - L§2� 56? \p.��.2fÌ �G5$ ÂSv 7&§ ¡å `ä��Ö© returnz� �Ö - ¦Õ2S �= �v p¦- v³> .��. 8$±Z� 7&- offset$ size� 01� ¡å� ��� H2� wx��. using characters üÙ? Adaptive Serverv �� �Ö 7& s./ 01� �Ì �1.��. Ú, � üÙ? readtextv ,Ô 7&- return2f �¬¹ B�.��.

• �� text R image _�� readtext- 01� ÷x��.

• dbcc fix_text- Æ�2f �Ó �� �Ö 7& s./  ¡� � text 2 �= readtext- 0123Ó 24 � �@ �&v�Í2Ó ) ÎDfv ^T^ U�V� dbcc fix_text- Æ�2¬¹ fD.��.

readpast yz ��

• readpast üÙ? data-only locked U�VÌ ±1���. readpastüÙ� allpages-locked U�V fA� ¡å� �D���.

• readpast üÙ? holdlock üÙ$ �Ú 01� ÷x��. � �@ üÙ/ fA24 )v �Í24� �@� B����.

• readtext �@� at isolation read uncommitted- fA2� ¡å�readpast üÙ� ¡Óv returnzÓ �@? B�zf �x��.

352

12A 9B: nullif – revoke

• �7 isolation level� 3Z� �Az4 readpast üÙ� )v�Í24� �@� B����.

• ¯Ù� isolation level� 3�4 readpast üÙ? ) ÷� �D���.

• ¯Ù� isolation level� 0�4 readpast üÙ�� ¡Óv �Í2fÌ �@? B�zf �x��.

56

7� readtext� U�V �= select ��� w> .��. readtext ��? select ��� #¬� � �Ú #¬���.

89 �� – set, writetext

��� ���� – text R image ��� ��

reconfigure�� "� reconfigure �@? é� �$v ÷ZW A ÷� S£ E¡

Ö- Æ�2S �= ��z wx��. �� ��E� ¡å �� �g  �A/ �� �"234 sp_configure DEF G�DH �y reconfigurev ��`x��.

�� reconfigure

�� �� reconfigurev ��� E¡Öv w� ¡å� 3�� � �-  ¡� wx��. reconfigurev � ��E� ��z wfÌ�e ��E�� f�zf �/ ¬ wx��.

56

7� reconfigure ��? DEF ��&© Á�Ö� �CzW �� 01&© #¬� ÷x��.

89 ��� ���� – sp_configure

�# $% "#SQL92 Transact-SQL ÎÍ

�# $% "#SQL92 Transact-SQL ÎÍ

353

remove java

remove java�� ���Q�E� 2^ �Y� Java-SQL `ÒE, ëìf ·� JAR

- R�.��.

Java `ÒEv ���Q�E �:� � 01.��. &¯� �1? Java in Adaptive Server Enterprise- ��2�D�.

�� remove javaclass class_name [, class_name]...

| package package_name [, package_name]...| jar jar_name [, jar_name]...[retain classes]

���� class class_name ���Q�E� R�� 2^ �Y� Java `ÒE� �[i��.`ÒE� "� ���Q�E �:z> .��.

package package_nameR�� 2^ �Y� Java ëìf� �[i��. ëìf� "� ���Q�E H�z> .��.

jar jar_name��� SQL #%&v ��� �� 30 �� 7&_ 2�^SQL #%&i��.

ùù� jar_name? "� ���Q�E B�� jar� �[$ lé> .��.

retain classes�[� fA� JARv o �Y ���Q�E B�zf �Ó B�� `ÒEv Ñ�� JAR- ßf �¬¹ fA.��.

�� • remove java 7� �� G�DH ��� ¡å "� ���Q�E� G�DHv U�� �� ���Q�Ev é�ä G�DHv Ìth �� ���Q�Ei��.

remove java 7� �� G�DH ��zf �? ¡å "� ���Q�E� remove 7� Æ�� �� ���Q�Ei��.

• class ·� packagev fAzÓ R�� =�� `ÒE Ñ��JARv wZ4 'Ðv �Í.��.

• �� G�DH, U�V, � R�� `ÒE �� ��v _,  ·� �g  � ��� ��Z� ��z wZ4 'Ðv�Í.��.

• R�� MN `ÒE� �y� ±1���.

• "� ���Q�E� R����.

354

12A 9B: nullif – revoke

• "� Ñ8� Java vY ��(Java VM)� ������.R�� `ÒE� �� Ñ8� Java VM�� ���zf�x��.

• remove java Æ� � 'Ðv �Í24 remove java� MN d5?_¼���.

• SQLJ �� G�DH ·� � � Java-SQL `ÒE- bc ��2� ¡å Java-SQL `ÒE- R�� ÷x��.

• ���Q�E� Java-SQL `ÒE- R�234 �y/ �=> .��.

a drop procedure R/·� drop function/ 012O ̀ ÒE- bc��2� MN SQLJ �� G�DH ·� � - R�.��.

b remove java- 012O ���Q�E� Java-SQL ̀ ÒE- R�.��.

Locks

• remove java- 0124 exclusive table lock� sysxtypes ~i��.

• jarv fAz4 exclusive table lock? sysjars ~i��.

7� DEF ��&^ ���Q�E ¼�&Ì remove java- 01� wx��.

89 ��� ���� – sp_helpjava

��� � – sysjars, sysxtypes

���� – extractjava, installjava

reorg�� 012� üÙ �ä h�f� 012f �� C\/ �012

<^, � �P/ R�2<^, U�V� MN �/ � h�f ��.��.

�� reorg reclaim_space tablename [indexname][with {resume, time = no_of_minutes}]

reorg forwarded_rows tablename [with {resume,time = no_of_minutes}]

reorg compact tablename [with {resume, time = no_of_minutes}]

reorg rebuild tablename [indexname]

355

reorg

���� reclaim_spaceR� R 6��Ö �ä noA 01zf �? C\/ �01.��. U�V� ù ��� h�f �= R�^ �/ ò�� 6��Ö� §= 012f �� C\� ÍS4 reorg reclaim_space� "� �/ Ñe±Z� �Í�=� 012f �� C\/ M h�f ô p��. h�f �� ÷/ �� ={ h�f� �{�=����.

tablename���� U�V� �[/ fA.��. indexname� fAz4 §iEÌ ������.

indexname���� §iE� �[/ fA.��.

with resume�� reorg �@� B�z� D�,� ���/ 6S¿.��. �� reorg �@ �� D\(time = no_of_minutes)� fA� ¡å01���.

with time = no_of_minutesreorg �@/ Æ�� D\(Ô)/ fA.��.

forwarded_rows� �P/ R�.��.

compactreorg reclaim_space R reorg forwarded_rows� S�/ 8.2O C\/ �012Ó l? ëE� � �P� Æ�/ _¼.��.

rebuildU�V �[� fAz4 U�V� MN �/ � h�f �D S¹2O U�V� clustered §iE �ä U�V� Aµz¬¹ .��. � � MN h�f� "�� C\ �� �A/ �[W h�f� � 0�� \Ï$ �P� �? £�2f �x��. §iE�[� fAz4 reorg� øS� 6��Ö 56/ �= U�V/ܯEv v�� Y�� 4� ={ §iE- ���.��.

�� 1 titles U�V� 012f �� h�f C\/ �01.��.

reorg reclaim_space titles

�� 2 titleind §iE� 012f �� h�f C\/ �01.��.

reorg reclaim_space titles titleind

356

12A 9B: nullif – revoke

�� 3 titles U�V� reorg compact- 6S¿.��. reorg� U�V D5 ,Ô� D52W 120Ô\ ¦e���. reorgv �� D\² C�z4 U�V D5 ,ÔZ� bév� �Å D\ \Ï� ¡$� �ef ¦e.��.

reorg compact titles with time = 120

�� 4 �� reorg compactv �p� f�� reorg compact- 6S¿2W 30Ô d² ¦e.��.

reorg compact titles with resume, time = 30

�� • reorg �@ fA� U�V� í�D datarows ·� datapageslocking ­#� w> .��.

• Ö×ØÙ ��� reorg �@/ 01� ÷x��.

• reorg rebuild� select into/bulkcopy/pllsort ���Q�E üÙ� true� �Az> 2W ���Q�E� checkpoint- Æ�=> .��.

• reorg rebuild� U�V$ ={ §iE ÂS� d+� �v ÁE C\� ��.��. sp_spaceused- 0124 "� U�V��f2� C\� ÂS- L§� wx��. sp_helpsegment-012O 01� w� C\� ÂS- L§� ¬ wx��.

• reorg rebuild- Æ�� �� (H ���Q�E- 'G=> Ö×ØÙ �K- 'G� wx��.

• &¯� �1? ��� �� ���- ��2�D�.

56

7� DEF ��&^ Å ¼�&Ì reorg �@/ 01� wx��.

89 ��� ���� – sp_chgattribute

return�� 7:^ G�DH- ��] B�2Ó �,± return Y� Ä�- �C

.��. return �y �� 7? �zf �x��.

�� return [integer_expression] [plan "abstract plan"]

�# $% "#SQL92 Transact-SQL ÎÍ

357

return

���� integer_expressionG�DHv return2� A 2i��. �� G�DH� U� G�DH^ ¤1 G�K¥ A 2/ return� wx��.

plan "abstract plan"¾�- �±¿2� � 01� Abstract Plan(AP)/ fA2W Abstract Plan(AP) � fA� �Å ·� +, ¦�� � wx��. �±¿� w� SQL 7, Ú U�V/ ܯE2� ¾��=�Ì ¦�/ fA� wx��. &¯� �1? Performanceand Tuning Guide� 30� "Creating and Using Abstract Plans"-��2�D�.

�� 1 01& �[� �g  � �Czf �Z4 return �@? 01&� ¿4Z� ÎDfv B�A � G�DHv B�z¬¹ .��. 01& �[� �Cz4 "� ���Q�E� ={ 01&v ÌN õö� �[� ={ DEF U�V� ÝÞ���.

create procedure findrules @nm varchar(30) = null as if @nm is null begin print "You must give a user name" return end else begin select sysobjects.name, sysobjects.id, sysobjects.uid from sysobjects, master..syslogins where master..syslogins.name = @nm and sysobjects.uid = master..syslogins.suid and sysobjects.type = "R" end

�� 2 6��Ö� §= ¡� �� Ê� �� vÏ� $15- 6$24return �@? �� 6��Öv titles� �v� �zS � 7:- B�.��.

print "Begin update batch"update titles set price = price + $3 where title_id = ’BU2075’update titles set price = price + $3 where title_id = ’BU1111’if (select avg(price) from titles where title_id like ’BU%’) > $15begin

358

12A 9B: nullif – revoke

print "Batch stopped; average price over $15" returnendupdate titles set price = price + $2 where title_id = ’BU1032’

�� 3 � G�DH� g� 01& A� Y� Ä�- ÌX��. 21? contract _ 1� ��� ¡å returnzÓ, 2 2� �� MN �]('- t, 0/ ��2� contract ·� �$ +:2f �� title_id)� return���.

create proc checkcontract @param varchar(11) as declare @status int if (select contract from titles where title_id = @param) = 1 return 1 else return 2

�� • return Y� Ä� 2/ "� G�DH- Æ�� 7: ·� G�DH� Ñe±§ �7 01� wfÌ �y$ l? �#Z�fA=> .��.

execute @retval = procedure_name

&¯� �1? execute- ��2�D�.

• Adaptive Server� �C±§ return/ ^T�S �= 0/ '(2Ó �&� �� �� �§/ ^T�S �= -1� -99 0�� y 2/ '(.��. 01& A� return 2� �Czf �Z4�)� Adaptive Server 2� 01���. 01& A� return Y� Ä� 2? Adaptive Serverv '(� 2$ ab24 ² ���.�y$ l� 0$ -1� -14 0�� .&v "� 01zÓ wx��.

359

return

� 12-2: Adaptive Server �W return �

-15� -99 0�� 2? ^� Adaptive Serverv 01� w¬¹ '(���.

• Æ� ¬� � �Y� )v �Í24 u�2� v� t? Y�v return���. 01& A� return 2? ¢Y Adaptive Server�C return 2B� å��/ vs��.

• return �@? 7:^ G�DH- B�23� MN �: 01� wx��. return? ÚD C�zm� return �y� �7?Æ�zf �x��.

• �� G�DH� NULL return Y� Ä�- return� ÷x��. @statusv NULL§ Y�� return @status- 012� ¡å¨� G�DHv NULL 2/ return23Ó 24 ¡Ó ÎDfv Í�zÓ 0� -14 0�� 2� return���.

56

7� return ��? Á�Ö� MN 01&© �C���. �ä� %¬�01 ��� ��2f �x��.

89 �� – begin...end, execute, if...else, while

> �F

0 Qï å� MÀ^ p"�Ì

-1 Ð& �3

-2 ��� �� Qï

-3 p"r�R ��3(deadlock) `aH" ab

-4 Ú: Qï

-5 EF Qï

-6 � *+, Qï

-7 �� ;4V W# `� Qï

-8 §���S T# 6; FN

-9 ��ê N:Q ��

-10 §�� 6; { §

-11 §�� 6; { §

-12 ád^ ��A q� �Ò�

-13 ád^ ������

-14 2�î8 Qï

�# $% "#SQL92 Transact-SQL ÎÍ

360

12A 9B: nullif – revoke

revoke�� 01& ·� T(role)� ���^ T(role)/ _¼.��.

�� ���Q�E Å �� ܯE ��/ _¼234 �y$ l�.��.

revoke [grant option for] {all [privileges] | permission_list} on { table_name [(column_list)]

| view_name [(column_list)] | stored_procedure_name}

from {public | name_list | role_name}[cascade]

���Q�E Å- Ìt w� ��/ _¼234 set proxy ·�set session authorization/ Æ�2�D�.

revoke {all [privileges] | command_list } from {public | name_list | role_name}

01&� T(role)� ̂�� T(role)/ _¼234 �y$ l� .��.

revoke role {role_name [, role_name ...]} from {grantee [, grantee ...]}

���� all���Q�E ŠܯE ��/ _¼2� � 01� ¡å({ H� �7 �#) all? fA� Å ±1� w� MN ��/ _¼.��. MN Å ¼�&� Å �[$ �Ú revoke all/ 012O &�� Å �� ��/ _¼� wx��.

DEF ��&^ ���Q�E ¼�&Ì create �@ ��/ _¼� wx��( H� �7 �#). DEF ��&v 01� ¡årevoke all? MN create ��(create database, create default, create procedure, create rule, create table R create view)/ _¼.��. ���Q�E ¼�&v revoke all/ 01� ¡å Adaptive Server�create database- �Ð� MN create ��/ _¼2Ó AB ÎDf- §Ë.��.

all? set proxy ·� set session authorization ±1zf �x��.

361

revoke

permission_list_¼� ��� ¸¹Z� � �Y� ��� ^_� ¡å� �-y@� �Ô.��. �y? ù ��� Å �= Y§2<^ _¼� w� ܯE ��/ BO ½� !i��.

��/ Y§� 01&Ì ={ ��/ _¼� wx��.

command_list�@� ¸¹Z� � �Y� �@� ^_z4 �- y@� �Ô.��. � �@ ̧ ¹� create database, create default, create procedure,create rule, create table, create view, set proxy ·� set session authorization� ��� wx��. create database ��? DEF ��&vmaster ���Q�E ��Ì _¼� wx��.

set proxy� Transact-SQL L��Ó set session authorization? SQL!X/ ���� ��- �Ð24 set proxy� set session authorization? d+.��. set proxy ·� set session authorization� Æ� ��/ _¼24 �P� �� 01&v � w� ��� R����. set proxy ·� set session authorization �� ��? DEF B² �{&v master ���Q�E ��Ì _¼� wx��.

table_name��� _¼zÓ w� U�V� �[i��. � U�V? "� ���Q�E w> 2W ù revoke 7 �= 2^� ÅÌ ^_� wx��.

column_list��� ±1z� _� ¸¹�W y@� �Ô���. _� fAz4 select R update ��Ì _¼� wx��.

view_name��� _¼zÓ w� �� �[i��. � �� "� ���Q�E w> 2W ù revoke 7 �= 2^� ÅÌ ^_� wx��.

�j�j�j�j permission_list Can Include:��A select, insert, delete, update, references

Ù select, insert, delete, update

� select, update, references

� ��# permission_list q� column_listQ SXD ( JU��("N 2 ��).

6Í p"�Ì execute

362

12A 9B: nullif – revoke

stored _procedure_name��� _¼zÓ w� �� G�DH� �[i��. � �� G�DH� "� ���Q�E w> 2W ù revoke 7 �= 2^� ÅÌ ^_� wx��.

publicMN 01&- �92W ŠܯE ��� ¡å� public�Å ¼�&v �Ð���. Å Í� ���^ set proxy ���¡å� public� ���Q�E ¼�&v �Ð���. "public"Kï ·� �� Kï�^ T(role) �=�� with grant option/ 012O grant ��/ �� ÷x��.

name_list01& ·� Kï �[� y@� �Ô� ¸¹i��.

roleDEF ·� 01& A� T(role)� �[i��. T(role)�^ 01&� Y§� T(role)/ _¼234 revoke role/ 01.��.

role_nameDEF ·� 01& A� T(role) �[�W jA T(role)� Y§� MN 01&�,� ��/ _¼2� � 01� wx��. �T(role) �[? DEF B² �{&v create role/ 012O ÌN01& A� T(role) ·� DEF T(role)� � wx��. �)� ��� T(role) � 2^- grant role �@Z� 01&© Y§� wx��. ·� sp_role DEF G�DH- 012O DEFT(role)/ Y§� wx��.

granteeT(role)/ _¼23Ó 2� DEF T(role), 01& A� T(role)·� 01&� �[i��.

grant option forwith grant option ��/ _¼2O name_list fA� 01&v o�Y �� 01&© fA� ��/ Y§� ÷© .��. �)� 01&v �� 01&© ��/ Y§� ¡å cascade üÙ/012O �t 01&� ��/ _¼=> .��. name_list fA� 01&� ŠܯE ��/ K�� B�2fÌ �� 01&© ܯE- Y§� � ÷x��. grant option for� ŠܯE ��Ì ±1zÓ Å Í� ��� ±1zf �x��.

cascade��� _¼� 01&v ��/ Y§� MN 01&�,� fA� ŠܯE ��/ _¼2W ŠܯE ��Ì ±1zÓÅ Í� ��� ±1zf �x��. grant option for ÷� revoke- 0124 ��� _¼� 01&v �� 01&© Y§� ��¬ _¼���. Ú, Ñ˱ _¼v &dZ� �Í.��.

363

revoke

�� 1 Mary� "sales" Kï� titles U�V� insert R delete ��/_¼.��.

revoke insert, deleteon titlesfrom mary, sales

�� 2 "public"� titles U�V� price R advance _ w� update��/ _¼2� vf ­®� wx��.

revoke updateon titles (price, advance)from public

·�

revoke update (price, advance)on titlesfrom public

�� 3 Mary� John� create database R create table �@ 01 ��/ _¼.��. create database ��/ _¼2S �7 DEF ��&v master ���Q�E �� � �@/ Æ�=> .��. Mary� John� create table ��? master ���Q�E ��Ì _¼���.

revoke create database, create tablefrom mary, john

�� 4 Harry� Billy�,� set proxy ·� set session authorization/Æ�2O �P� �� 01&- �"� w� ��/ _¼.��.

revoke set proxy from harry, billy

�� 5 sso_role/ vA 01&�,� set proxy ·� set session authorization Æ� ��/ _¼.��.

revoke set session authorization from sso_role

�� 6 vip_role/ vA 01&�,� �P� �� 01&- �"� w� ��/ _¼.��. vip_role? DEF B² �{&v createrole �@Z� A�� T(role)�> .��.

revoke set proxy from vip_role

�� 7 "� ���Q�E� Mary� MN Å Í� ��/ _¼.��.

revoke allfrom mary

364

12A 9B: nullif – revoke

�� 8 titles U�V� Mary� MN ŠܯE ��/ _¼.��.

revoke allon titlesfrom mary

�� 9 titles U�V� price R advance _/ ��2� �� U�V� �� integrity constraint- Ìt w� Tom� ��/ _¼2� vf ­®� wx��.

revoke referenceson titles (price, advance)from tom

·�

revoke references (price, advance)on titlesfrom tom

�� 10 �;& T(role)� Y§� MN 01&� new_sproc �� G�DH Æ� ��/ _¼.��.

revoke execute on new_sprocfrom oper_role

�� 11 authors U�V� �� 01&© insert, update R delete��/ Y§� w� John� ��/ _¼.��. John� �� 01&© Y§� l? ��¬ _¼���.

revoke grant option forinsert, update, deleteon authorsfrom johncascade

�� 12 specialist_role� doctor_role/ _¼.��.

revoke role doctor_role from specialist_role

�� 13 "specialist_role", "intern_role", Mary R Tom� "doctor_role"$ "surgeon_role"/ _¼.��.

revoke role doctor_role, surgeon_role from specialist_role, intern_role, mary, tom

�� • �� �� &¯� �1? grant �@/ ��2�D�.

• "� ���Q�E w� Å �=�Ì ��/ _¼� wx��.

365

revoke

• &�� Y§� ��Ì _¼� wx��.

• 01&v �K§� d²� ={ 01&� T(role)/ _¼� ÷x��.

• grant R revoke �@? ¶�- �Ô.��. ab� wZ4 v�^� Æ�� �@� ±1���.

• revoke �7� to- fromZ� �Å� wx��.

• grant option for- revoke 7 fA2f �Z4 fA� ŠܯE ��$ �Ú 01&� with grant option ��� _¼���. ·� ={ 01&v �� 01&© Y§� fA� ��¬ M_¼���. Ú, revokev Ñ˱Z� �Í.��.

• revoke grant option? �� 01&© fA� ��/ Y§� w� jA 01&� ��/ _¼2fÌ ={ 01&� �� &Å- _¼2f� �x��. � 01&v fA� ��/ �� 01&© Y§� ¡å� cascade üÙ/ 01=> .��. KJf �Z4 ) ÎDfv ^T^Ó revoke �&v �Í.��.

'- t, �y �7/ 012O titles� 01& Bob� withgrant option ��/ _¼��Ó vA� wx��.

revoke grant option for selecton titlesfrom bobcascade

• Bob� fA� ��/ �� 01&© Y§2f �L�4� �@? Bob� �)� ��/ _¼.��. K)^ titles U�V� Bob� select ��? K�� �f���.

• Bob� fA� ��/ �� 01&© Y§`�4 cascadeüÙ/ 01=> .��. KJ© 2f �Z4 ) ÎDfv^T^Ó revoke �&v �Í.��. cascade� Bob�select ��/ Y§� MN 01&�,� � ��$ �� 01&© � ��/ Y§� w� ��/ M _¼.��.

• grant 7? ��/ $� ù 01&, Kï ·� T(role)/ �= sysprotects DEF U�V � 2^- �v.��. 01&^ Kï� �� Ñe=� revoke- �24 Adaptive Server� ��/ sysprotects� R�.��. ��� Y§� �Å Kï� é�ä �,� Kï ���� ��Ì _¼24 Adaptive Server��Ò �/ B�2Ó _¼- �� ��� �/ �v.��.

366

12A 9B: nullif – revoke

• create trigger �@/ Æ�� w� ��? 01&© Á�Ö��C���. 01&� Ö�< Í� ��/ _¼24 ={ 01&� sysprotects U�V revoke �� �v���. create triggerÆ� ��/ Y§234 g� grant �@/ Æ�=> .��.{ H� �@? sysprotects� revoke �/ R�2Ó H� �@? grant �/ ci.��. Ö�< Í� ��/ _¼24 01&� &�� ¼�� U�V�¬ Ö�<- Í�� ÷ZW� ? revoke �@� Æ�� ���Q�EÌ ;</ 9q��.

set proxy ) set session authorization Ót

• DEF B² �{&Ì master ���Q�E �� set proxy ·� set session authorization ��/ _¼2<^ T(role)/ _¼� wx��.

• set proxy R set session authorization? set session authorization�SQL !X/ ���� �/ �Ð24 d+.��. SQL !X �@ R �7� 01� ��� ¡å� set session authorization/012�D�.

• revoke all? set proxy ·� set session authorization ��/ u� ��2f .34!.

>(role), ��h ) Ä�P? Ót

• T(role) Y§� ��? g% 01&^ Kï Y§� ��å�.��. �ä� T(role)� Y§� 01&� ��� _¼z¬ ={ T(role) l? ��� wZ4 01&� ��/ ¦eB�.��. '- t, John© DEF B² �{& T(role)�Y§zÈÓ sso_role sales U�V �� ��� Y§zÈ�ÓvA� wx��. � � sales �� John� g% ��� _¼z¬ T(role) ��� g% �� å�2m� John? sales¦e ܯE� wx��.

• "public"�^ Kï� jA ��/ _¼24 ={ ��� g%±Z� Y§� 01&� ��¬ _¼���.

• ���Q�E 01& Kï/ 0124 � H � �Y� 01&� �� �= grant ·� revoke- �� wx��. 01&� ¢Y Á�Ö Kï§ "public"� ����Ó p � g� ��Kï ���� � wx��. Adaptive Server� �: E¡Ö� �� s./ "public" �{.��.

367

revoke

sp_addgroup DEF G�DH- 012O Kï/ ÌtÓ sp_dropgroup/ 012O Kï/ R�.��. � 01&- Kï �v234 sp_adduser- 012Ó 01&� Kï ���/ ¡234 sp_changegroup/ 01.��. Kï� ���/ !D234 sp_helpgroup/ 01.��.

56

7� jkyB bc ��B ���Q�E Å �� revoke ��?Å ¼�&© Á�Ö� �C���. Å ¼�&� &�� ���Q�E Å �� �� 01&� ��/ _¼� wx��.

�� e! DEF ��&Ì master ���Q�E� create database ��/ _¼� wx��. DEF B² ��&Ì create trigger ��/ _¼� wx��.

_�a H �V @� d< DEF B² �{&Ì master ���Q�E� set proxy ·� set session authorization/ _¼� wx��.

�(role) master ���Q�E�Ì T(role)/ _¼� wx��.DEF B² �{&Ì 01&^ T(role)� sso_role, oper_role ·�01& A� T(role)/ _¼� wx��. DEF ��&Ì 01&^ T(role)� sa_role/ _¼� wx��. sa_role R sso_role/M vA 01&Ì sa_role/ ��2� T(role)/ _¼� wx��.

89 �� – grant, setuser, set

'( – proc_role

��� ���� – sp_activeroles, sp_adduser, sp_changedbowner, sp_changegroup, sp_displaylogin, sp_displayroles, sp_dropgroup, sp_dropuser, sp_helpgroup, sp_helprotect, sp_helpuser, sp_modifylogin, sp_role

�# $% "#SQL92 Transact-SQL ÎÍ

368

1 3 ���� ��: rollback – save transaction

rollback�� Ö×ØÙ� �[� fA� savepoint^ Ö×ØÙ� D5Z� 0

1& A� Ö×ØÙ/ TI(rollback).��.

�� rollback [tran | transaction | work][transaction_name | savepoint_name]

���� tran | transaction | work Ö×ØÙ ·� 56/ TI(rollback)�f O,- fA.��. tran, transaction ·� work- fA2� ¡å transaction_name ·�savepoint_name¬ fA� wx��.

transaction_nameÐ, Ö×ØÙ �{� �[i��. #%& �� õö/ X => .��.

savepoint_namesave transaction 7� savepoint �{� �[i��. � �[?#%& �� õö/ X => .��.

Ö×ØÙ/ TI(rollback).��.

begin transactiondelete from publishers where pub_id = "9906"rollback transaction

�� • transaction_name�^ savepoint_name� ÷� rollback transaction? 01& A� Ö×ØÙ/ Ð, Ö×ØÙ� ¨yZ� TI(rollback).��.

• rollback transactiontransaction_name? 01& A� Ö×ØÙ/ �[� fA� Ö×ØÙ� ¨yZ� TI(rollback).��. Ö×ØÙ/ ��� woä¬ Ð, Ö×ØÙÌ TI(rollback)� wx��.

• rollback transactionsavepoint_name? 01& A� Ö×ØÙ/ +:2� save transaction savepoint_nameZ� TI(rollback).��.

369

rollback

� �m

• "� 01 �§ Ö×ØÙ� ÷Z4 commit ·� rollback 7? é� �$v ÷x��.

• rollback �@? Ö×ØÙ � ̂ T^> .��. commit/ i���y� Ö×ØÙ/ TI(rollback)� ÷x��.

Ôj ,¦§z >�(rollback)

• savepoint �[� ÷� rollback? �Å Ö×ØÙ/ _¼.��. Ö×ØÙ� 7�^ G�DHv M Æ� _¼���.

• savepoint_name�^ transaction_name� rollback �@$ �Ú �Czf �? ¡å� Ö×ØÙ� 7:� { H� begin transactionZ� TI(rollback)���. OS� ÑË Ö×ØÙ M�- 012O ^D± begin transactionZ� D5� Ö×ØÙ¬ �����.

savepoint� >�(rollback)

• Ö×ØÙ� +,- _¼234 savepoint_name� w� rollback/ 012�D�. savepoint� save transaction �@Z� 01&v �� Ö×ØÙ �� !D s.i��. savepoint� rollback0�� �7$ G�DH� M Æ� _¼���.

Ö×ØÙ� savepoint� TI(rollback)� ��� commit/ 012O C�2¬¹ 2<^(rollback �� SQL 7 Æ�) savepointv ÷� rollback/ 012O M _¼� wx��. Ö×ØÙ�� savepoint� � ��� ÷x��.

,X�¥ Kx /��� K >�(rollback)

• Ö�<� �� G�DH� Ö×ØÙ�^ savepoint �[� ÷� rollback 7? ={ G�DH- U�2<^ Ö�<- 5dDì� 7:� �D± ·� ^D±§ { H� begin transactionZ�MN �7/ TI(rollback).��.

• savepoint �[� ÷� rollback �@� Ö�< w/ ¡å � TI(rollback) 56Z� �Å 7:v �f���. TI(rollback)��� 7: � Ø �7¬ Æ�zf �x��.

• �Ï G�DH U�(RPC)? RPCv ��z w� Ö×ØÙ� (¡±Z� Æ����. !X Ö×ØÙ(Ú, Open Client™DB-Library 2 phase commit/ 012f �y)� ¡å �Ï �P� RPC- �= Æ�� �@? rollbackZ� TI(rollback)zf�ZW Æ�� commit �£2f �x��.

370

13A 9B: rollback – save transaction

• Ö×ØÙ �� 7 01 �� �1$ �� G�DH, Ö�<, 7: *� rollback� ;< �� �1/ B34 Transact-SQLUser’s Guide- ��2�D�.

56

7� rollback ��? Á�Ö2§ "public"Z� z wx��. �ä� %¬� 01 ��� ��2f �x��.

89 �� – begin transaction, commit, create trigger, save transaction

rollback trigger�� Ö�<- 5dDì� ��� A/ ��2O Ö�<� ��A

56/ TI(rollback)2Ó �,±Z� raiserror 7/ Æ�.��.

�� rollback trigger[with raiserror_statement]

���� with raiserror_statementraiserror 7/ fA.��. � �7? 01& A� ) ÎDf- §Ë2Ó ) �]� �Í 0Æ/ S¹2¬¹ DEF |ÒK- �A.��. rollback triggerv Æ�� � `ä��Ö© )- +ZGZ�� ={ )� Ö×ØÙ Y�v TI(rollback)/ ^T�¬¹ 2� S�¬ �C.��. raiserror_statement- A�2� �7$ õö �� &¯� �1? raiserror �@/ ��2�D�.

Ö�<- TI(rollback)2Ó 01& A� ) ÎDf 25002- ̂ T���.

rollback trigger with raiserror 25002 "title_id does not exist in titles table."

�� • rollback triggerv Æ�� � Adaptive Server� "� Æ� �§ �@/ �f2Ó ^�f Ö�<� Æ�/ �fD*��.

• rollback trigger- Æ�2� Ö�<v �� Ö�< ² ��zw� ¡å Adaptive Server� { H� Ö�<- 5dDì� 6��Ö- ��2O �)� Ö�<� �� MN 56/ TI(rollback).��.

�# $% "# ��

SQL92 +£ (� >* EF9 rollback transaction �¯V rollback tran �¯ D £¤¥� ��9 *+# Transact-SQL ÎÍ.��.

371

save transaction

• Adaptive Server� Ö�< Ð,� Æ�z� rollback trigger 7/�D2Ó � �7$ Ñ�� raiserror- Æ�2f �x��. K)^ Ö�< Ð,�W Ö×ØÙ� �,� Æ�� rollback trigger7? ) ÎDf- Ìt Adaptive Serverv ={ Ö×ØÙ/TI(rollback)2Ó "� �7 7:- �f2¬¹ .��.

56

7� rollback trigger ��? Á�Ö2§ "public"Z� z wx��. �ä� %¬� 01 ��� ��2f �x��.

89 �� – create trigger, raiserror, rollback

save transaction�� Ö×ØÙ �� savepoint- �A.��.

�� save transaction savepoint_name

���� savepoint_namesavepoint �{� �[i��. #%& �� õö/ X =>.��.

H& �= royaltyper ÀÖ�- 6��Ö2Ó ̈ � percentchangedsavepoint- ci2Ó � Ê� vÏ/ 10% §Y� ¡å H&� §¯ i © A¬ ;<� w�f �ª.��. � Ö×ØÙ? rollbacktransaction �@� w� savepoint� TI(rollback)���

begin transaction royalty_change update titleauthor set royaltyper = 65 from titleauthor, titles where royaltyper = 75 and titleauthor.title_id = titles.title_id and title = "The Gourmet Microwave" update titleauthor set royaltyper = 35 from titleauthor, titles where royaltyper = 25 and titleauthor.title_id = titles.title_id

�# $% "#SQL92 Transact-SQL ÎÍ

372

13A 9B: rollback – save transaction

and title = "The Gourmet Microwave" save transaction percentchanged

update titles set price = price * 1.1 where title = "The Gourmet Microwave" select (price * total_sales) * royaltyper from titles, titleauthor where title = "The Gourmet Microwave" and titles.title_id = titleauthor.title_id rollback transaction percentchanged commit transaction

�� • Ö×ØÙ 7/ 012� �� &¯� �1? Transact-SQLUser's Guide- ��2�D�.

• savepoint� Ö×ØÙ� ,Ô� TI(rollback)z¬¹ 2� Ö×ØÙ �� 01& A� !Di��. rollback savepoint_name �@? fA� savepoint� TI(rollback)2W � savepoint� rollback0�� �7�^ G�DH� M Æ� _¼���.

savepointB� ¢� w� �7? Æ� _¼zf �ZW Ä�zf¬ �x��. savepoint� TI(rollback)2Ó ¨ � Ö×ØÙ? ¦e �7/ Æ�.��. savepointv ÷� rollback? �Å Ö×ØÙ/ _¼.��. commit? Ö×ØÙ/ ¦e2O C�z¬¹ .��.

• Ö×ØÙ/ ��2� ¡å� save transaction� Ð, Ö×ØÙÌ savepoint- ÌX��.

• Ö×ØÙ �� savepoint� � ��� ÷x��.

• savepoint_name�^ transaction_name� rollback �@$ �Ú �Czf �? ¡å� 7:� { H� begin transactionZ� MN �7� TI(rollback)zÓ �Å Ö×ØÙ� _¼���.

56

7� save transaction ��? Á�Ö2§ "public"Z� z wx��. �ä� %¬� 01 ��� ��2f �x��.

89 �� – begin transaction, commit, rollback

�# $% "#SQL92 Transact-SQL ÎÍ

373

save transaction

374

1 4 ���� ��: select – setuser

select�� ���Q�E Å� �/ ÝÞ.��.

�� select ::=select [ all | distinct ] select_list [into_clause ][from_clause ][where_clause ][group_by_clause][having_clause ][order_by_clause ][compute_clause ][read_only_clause ][isolation_clause ][browse_clause ][plan_clause ]

select_list ::=

�� select_list �� &¯� �1? �g  ��/ ��2�D�.

into_clause ::=into [[database.]owner.]table_name[ lock {datarows | datapages | allpages } ]

[ with into_ option [, into_ option] ...]

into_option ::= | max_rows_per_page = num_rows| exp_row_size = num_bytes| reservepagegap = num_pages| identity_gap = gap [existing table table_name][[external type] at “path_name”

[column delimiter delimiter]]

from_clause ::=from table_reference [,table_reference]...

table_reference ::= table_view_name | ANSI_join

375

select

table_view_name ::=[[database.]owner.] {{table_name | view_name} [as] [correlation_name][index {index_name | table_name }] [parallel [degree_of_parallelism]][prefetch size ][lru | mru]}

[holdlock | noholdlock] [readpast][shared]

ANSI_join ::=table_reference join_type join table_reference join_conditions

join_type ::= inner | left [outer] | right [outer]join_conditions ::= on search_conditions

where_clause ::= where search_conditions

group_by_clause ::=group by [all] aggregate_free_expression

[, aggregate_free_expression]...

having_clause ::=having search_conditions

order_by_clause ::=order by sort_clause [, sort_clause]...

sort_clause ::={ [[[database.]owner.]{table_name.|view_name.}]column_name | select_list_number | expression }[asc | desc]

compute_clause ::=compute row_aggregate(column_name)

[, row_aggregate(column_name)]...[by column_name [, column_name]...]

read_only_clause ::=for {read only | update [of column_name_list]}

isolation_clause ::=at isolation

{ read uncommitted | 0 }| { read committed | 1 }| { repeatable read | 2 } | { serializable | 3 }

browse_clause ::=for browse

plan_clause ::=plan "abstract plan"

���� all8$ w� MN �/ ��.��. all? Á�Öi��.

376

14A 9B: select – setuser

distinct8$ w� Ó� �Ì ��.��. distinct� �, ¸¹� ¨y pv z> .��. èéBS M��� distinctv �D���.

NULL 2? ìý� distinct�� d+2© \½zW O) NULL� ^T^¬ p 2^� NULL� �,���.

�/¼7&- �Ô2f �¬¹ Aµ ¶�- ��� ¡å¬ distinct� "smith"� "Smith"- %¬� �Z� S¹.��.

select_list�y$ l? 2^ �Y� ¢¸Z� ��z wx��.

• create table ¶� w� MN _/ ^T�� "*"

• 01&v �2� BS ¶�� ^_� _ �[� ¸¹. S£�IDENTITY _/ �,2� ¡å 01&� Æ� _ �[ �� U�V �[ ±.� syb_identity ìý�- 01� wx��.

• 8$ U�V ��� IDENTITY _/ �v2S �� õÏ

column_name = identity(precision)

• Á�Ö _ �¸(_ �[)�  ¡ �#

column_heading = column_name

·�

column_name column_heading

·�column_name as column_heading

�� l? MN �#� _ �¸/ �+!� �/ wx��. �¸� ��� #%&v é: ¡å, Ú �¸� '(�<^ j 7&� D52<^ CI ·� @�!- ��2� ¡å �¸/ í�D �+!� �> .��.

377

select

• !"#(_ �[, Y , � , �ã¾��<^ ÕÛ ·� kÖÑÕ& �= Ñ8� _ �[, Y R � � =� �.)

• �� � ·� s¦

• � ^_� ¢¸� =� �.

select_list� �y$ l? �#Z�   2/ �{� wx��.

@variable = expression [, @variable = expression ...]

01&�   �{/ �� select_list üÙ$ l� 01� ÷x��.

into�, ¸¹� fA� �$ where u� �,� _ �ä� �U�V/ ÌX��. � u� "select into 01"/ ��2�D�.

lock datarows | datapages | allpages select into �@/ 012O ÌtA U�V 01z� locking ­#/ fA.��. Á�Ö� lock scheme �� �g  �� �P �Å �Ai��.

max_rows_per_pageselect into- 012O ÌtA U�V� ��� h�f w� �� - ��.��. fillfactor� P� max_rows_per_page 2? ���v ciz<^ R�� �¬ ¦e �f���. max_rows_per_page� data-only locked U�V�� f�zf �x��.

existing table table_nameG¹D U�V� ���- �,2Ó wy/ ^T���. � selectinto- G¹D- �Ð� �� U�V ��� 01� ÷x��.select ¸¹� _ ¸¹? G¹D U�V� ��, 0� R HU� +:=> .��.

at "path_name"�,2� Ð, �+� �Å ¡� �[/ ^T���. G¹D U�V� �,234 at �g  Ì 01� wx��.

378

14A 9B: select – setuser

external [table | file]Ð, Å ��� �+§f U�V§f ^T���. �+ ·� U�V/ ̂ T�f �Z4 select into� U�V/ 012Ó w�Ó vA.��.

column delimeter "delimiter"_/ �Ô2S �= 012Ó w� �Ô&- ^T���. �Ô&- fA2f �? ¡å select into� H 7&- 01.��.

exp_row_size = num_bytesselect into �@Z� Í�� U�V �� 'Y � ÂS- fA.��. � �@? datarows R datapages locking ­#$ v  0��� w� U�VÌ 01� wx��. OS� 0, 1/ k�2O U�V� �¼ � 0�B� ÂÓ �� � 0�B� 5? 2/01� wx��. Á�Ö2? 0�W �� �P �Å Á�Öv01�/ �9.��.

reservepagegap = num_pagesjýh h�f� Q h�f� kl/ fA2O select intov ���- H�� ¸±Z� |E}Ö(extent)- �{� � Q h�f-no ~¬¹ .��. � üÙ? select into �@Ì 01� wx��. fA� ù num_pages �= ^� U�V/ L�� w¬¹ Q h�f- 2^ no ~x��. �� 2? 0-255�W Á�Ö2? 0i��.

readpast¾�v ÎDf- S��<^ Í�2f �é¬ exclusive lock/012� �/ ]s²¬¹ fA.��.

with identity_gapU�V� ID \Ï/ fA.��. � 2? � U�V �=�Ì DEF ID\Ï �A/ çÙ��.

valueID \� #i��.

jA� ID \Ï �A/ vf� U�V� select into 7Z� U�V/ 5�2� ¡å � U�V? Y� U�V�,� ID \Ï �A/ �$f �x��. �� � U�V? identity burning setfactor �A/ 01.��. � U�V jA identity_gap �A/ ,O234 select into 7� ID \Ï/ fA=> .��. � U�V Y� U�V$ d+2<^ �� ID \Ï/ ,O� wx��.

379

select

fromselect 7� 01z� U�V$ �- fA.��. �, ̧ ¹ _�[� ��� ¡å(Ú Y �( �]$ ÕÛ !"#Ì ��)-�Ð24 from� í�D ��.��.

select 5 x, 2 y, "the product is", 5*2 Result

x y Result

----------- ----------- -------------- -----------

5 2 the product is 10

¾�� s¦� (Aggregate function) �= ÌtA �� 16g� U�V$ 12g� 56 U�V/ ¾�� wx��. 16g U�V ��� �y� �����.

• from u ^_� U�V(·� U�V� �)

• d+ U�V(&Å �§) �� O) ��� ù §EIE

• �ã¾�� ��z� U�V

• into- 012O ÌtA U�V

• from u ^_� �v ��2� SX U�V

view_name, table_nameselect 7� 01z� U�V$ �- ̂ _.��. U�V ·� �v �� ���Q�E £�2� ¡å ���Q�E �[/ fA2Ó, � �Y� U�V ·� �v � ���Q�E £�2�¡å ¼�&� �[/ fA.��. owner� Á�Ö2? "� 01&�W, database� Á�Ö2? "� ���Q�Ei��.

� �Y� U�V ·� �v ¸¹ £�2� ¡å y@- 012O ùù� �[/ �Ô.��. from ìý� �y ^�� U�V$ �� ¶�� 8$ ;</ 9:f �x��.

01&� d+� �7 w� �� ���Q�E- ¾�� wx��.

&Å �§ ·� �ã¾�� U�V$ �v �2� T(role)/�Ô2S �=� U�V �[$ � �[/ YU �¦ �[(v�(alias))Z� fA� wx��. YU �¦ �[/ �{234 �y$ l� U�V ·� �� �[, CI, YU �¦ �[/ �ð�fA.��.

select pub_name, title_id from publishers pu, titles t where t.pub_id = pu.pub_id

380

14A 9B: select – setuser

'- t, where u� U�V ·� � �� MN �� ���YU �¦ �[/ 01=> .��. YU �¦ �[? .&� D524 ² ���.

index index_nametable_name ܯE2� � 01z� §iE- fA.��. �� �,2� ¡å 01&� � üÙ/ 01� ÷fÌ, create view7� select u� +,� � üÙ/ 01� wx��.

parallelAdaptive Serverv �µ ¨�- 312¬¹ ��� ¡å �µ partition ·� §iE E�/ fA.��.

degree_of_parallelismU�V ·� §iE- �µ� E�� 'A§ 56& G�¯E� - fA.��. 1� �A� ¡å ¾�� bµ� ����.

prefetch size �õM i/��� ��� ÃD� ��� U�V� i/�� ÂS-KB p�� fA.��. �� ÂS 2? 2, 4, 8, 16i��. �� �,2� ¡å 01&� � üÙ/ 01� ÷fÌ, create view 7� select u� +,� � üÙ/ 01� wx��. sp_helpcacheG�DH� Åv ��� ÃD ·� Á�Ö ÃD� �� ÂS- ^T���.

CIS(Component Integration Services)- 0124 �Ï �Pprefetch- 01� ÷x��.

lru | mruU�V 01z� P¤ ªÅ �]/ fA.��. lru- 0124üÈ@�H� MRU/LRU(�á 0¢/v� �Ò� 0¢) ÑË w� ÃD� U�V/ )�� ø ti��. ·� mru- 012OÃD� P¤- P �y U�V ={2� �y P¤� ªÅ.��. �� �,2� ¡å 01&� � üÙ/ 01� ÷fÌ, create view 7� select u� +,� � üÙ/ 01� wx��.

381

select

holdlockÖ×ØÙ� C�� �ef shared lock/ �f2m� fA� U�V ·� �� shared lock� B� �����(Ö×ØÙ� C�zÈ�f O, �¦÷� �;� ��� h�fv o �Y ��2f �é shared lock� =�z� ��).

holdlock üÙ? � üÙ� fA� U�V ·� �Ì ±1zW �üÙ� 01z� 7� A�� Ö×ØÙ S\ d²Ì ±1���. set �@� transaction isolation level 3 üÙ/ �A24 Ö×ØÙz� d² ùù� select 7 �=� ^D±Z� holdlock� ±1���. holdlock ìý�� for browse üÙ� ��� select 7��01� ÷x��. 01&� ¾�� holdlock R noholdlock üÙ/ dD fA� ÷x��.

CIS(Component Integration Services)v Z�¿z wZ4 �Ï�P holdlock/ 01� ÷x��.

noholdlockselect 7� Æ�z� d² ��� =�� lock� �fzf �¬¹.��. 01&� ¾�� holdlock R noholdlock üÙ/ dD fA� ÷x��.

sharedfA� U�V ·� �� lock/ 6��Ö2� �� shared lock/ 012¬¹ Adaptive Server �@.��. �J© 24 ��`ä��Ö¬ U�V ·� � �� 6��Ö lock/ LB� wx��. declare cursor 7� +,§ select u�Ì shared ìý�- 01� wx��. '- t4 �y$ lx��.

declare shared_crsr cursorfor select title, title_id from titles sharedwhere title_id like "BU%"

ùù� U�V ·� � �[ �y holdlock$ shared- �Ú 01� wfÌ holdlock? í�D shared ¢ ^T^> .��.

ANSI joinANSI �7/ 012� �, ·� Ð, �§i��. from u? �§23� U�V/ fA.��.

inneron u� �]/ azDì� �, U�V$ Ð, U�V� �Ì ��.��. �, �§/ ��2Ó w� 8$ set� on u� �]/ azDìf F2� Ð, U�V� � �� NULL CÉ ����zf �x��.

382

14A 9B: select – setuser

outeron u� �]/ azDì<^ azDìf �� Ð, U�V� MN �/ ��.��. �� on u� �]/ azDìf F24 �,U�V� 2? �§ U�V NULL 2Z� H����. ANSI Ð, �§� where u? ¾� 8$ ��z� �/ ��.��.

left®¯ �§� join u� ®¯ �= ^_� U�V ��� MN�� ��z wx��. ®¯ U�V ��� Ð, U�V ·� �B£ U�V� �����.

�y ¾�� T1? Ð, U�V�Ó T2� �, U�Vi��.

T1 left join T2T2 right join T1

right��¯ �§� join u� ��¯ �� U�V ��� MN �� ��z wx��(�� '� ��).

search_conditionsÝÞ23� �� �]/ �A2S �= 01���. ÝÞ �]�_ �[, !"#, ÕÛ ÑÕ&, kª ÑÕ&, �ã¾�, �] !"#K�Ó not, like, is null, and, or, between, in, exists, any, all *$ l?ìý�v ��� wx��. &¯� �1? 453 ��� where�/ ��2�D�.

group byù Kï� 2/ èx��. � 2? � �� é: ��� _� 8$ ^T>��.

!X SQL� group by- 012� ¡å �, ¸¹ w� ù ¢¸? Kï� MN �� ,d2/ v³> 2W s¦� (Aggregatefunction)� �Ú 01z> .��. s¦� (Aggregate function)� ù Kï �= 2^� 2/ Í�.��. Transact-SQL�� �, ¸¹� ¢¸ �= �� l? ��� ÷x��. ·� Transact-SQL? MN !"#(_ v�(alias) �Ð) �=� �Ô� wfÌ !X SQL? _ �=�Ì �Ô� wx��.

01&� group by- 012O ! 14-1 ^_� s¦- 01� wx��(expression? �,Ô _ �[i��).

� 14-1: aggregates! group by5 �� ES� a4

��E"

(Aggregate function) �3

sum([all | distinct] expression) (§ �9 ?� 3

avg([all | distinct] expression) (§ �9 ,- 3

383

select

&¯� �1? 282 ��� group by � having �/ ��2�D�.

_/ �.2O U�V/ �Ô� wx��. Ú Kï Kï/ ��D� wx��. _ �¸ �ä�� Kï/ �Ô� ÷ZWí�D _ �[, !"# ·� �, ̧ ¹� ¢¸� �:- ^T�� .&- 012O �Ô=> .��.

group by allÝÞ �]/ azDì� �/ ��2f �é¬ 8$ MN Kï/ ��.��(��� '�� group by � having � ��).

aggregate_free_expressions¦- ��2f �� !"#i��.

havingwherev select u �� �]/ �A2� ­#$ k�� ­#Z�group by u �� �]/ �A.��. ��� w� �]� g � ��� ÷x��.

group by u/ 012f �é¬ having u/ 01� wx��.

�, ¸¹ w� =�� _� s¦� (Aggregate function)- vfÓ wf �Ó ·� ¾�� group by u ��zf �? ¡å(!X SQL�� ��2f �y) having$ where� �9v (\����.

� ¡å where u? s¦ ¦Õ ��z� �/ ��2fÌ ¾�v return2� �/ ��2f� �x��. í�� having u? ¾�v return2� �/ ��2fÌ s¦ ¦Õ� ;</ 9:f �x��. ��� '�� group by � having �/ ��2�D�.

order by8$- _ �ä Aµ.��. Transact-SQL 01&� �, ¸¹ ^T^f �� ¢¸ �= order by- 01� wx��. 01&� _ �[, _ �¸(·� v�(alias)), !"# ·� �� ��� ¢¸� �:- ^T�� .&(select_list_number) �ä Aµ� wx��. �, ¸¹ HU �ä Aµ2� ¡å order byu� ��2� _? í�D �, ¸¹ ��z> .��. ·��, ¸¹? *(%!)v � ÷x��.

count([all | distinct] expression) �Q² �Î2� NULL� ÇS 39 (

count(*) ab^ À9 (max(expression) �9 _c3

min(expression) �9 _`3

��E"

(Aggregate function) �3

384

14A 9B: select – setuser

asc�[�¶(Á�Ö)Z� 8$- Aµ.��.

desc�8�¶Z� 8$- Aµ.��.

compute� s¦(sum, avg, min, max R count)� �Ú 01z � �p �( 2/ Í�.��. �( 2? ¾� 8$ �v �Z� ^T^m� 01&� � �7� ¯, 0¢ R �( �/ ê wx��.

select into u? compute� �Ú 01� ÷x��.

compute by- 012� ¡å� í�D order by u/ 01=> .��. compute by �y ^_� _? order by �y ^_� _$d+2<^ � _� 2� s.�> 2W ®¯� ��¯� ¶�� ^_zÓ d+� !"#Z� D52W +Å� !"#¬ Í]24 ² ���.

'- t order by u� �y$ l? ¡å

order by a, b, c

compute by u? �y �� 2^v � wx��.

compute by a, b, c compute by a, b compute by a

compute ìý�� by- 012f �é¬ �Å .¦, �Å I�Ö*/ Í�� wx��. by- 012f �Ó compute- 012�¡å order by� �, 0¢i��. &¯� �1$ '�� compute�/ ��2�D�.

CIS(Component Integration Services)v Z�¿z wZ4 �Ï�P compute- 01� ÷x��.

385

select

for {read only | update}Ä� 8$ set� øS �1�<^ 6��Ö� wy/ fA.��. � üÙ? G�DHv Ä� �� ¾�- A�� ¡å ��G�DH�Ì 01� wx��. � ¡å select� G�DH� 31z� �+� �7i��. � �7? declare cursor 7/ A�2� �� for read only ·� for update üÙ/ A�.��. ��l? Ä� �� ­#? �/ h:2� d² h�f X locking ­#� ��/ �C.��.

�� G�DH w� select 7� Ä�- A�2� � 01zf ��¡å Adaptive Server� for read only | update üÙ/ �D.��. Ä� ��/ �� �� G�DH 01$ ��� &¯� �1?Embedded SQL™ ���- ��2�D�. øS �1 Ä� ·�6��Ö v� Ä�� ��� �1? Transact-SQL User's Guide- ��2�D�.

of column_name_listfor update üÙ �=� 6��Ö v�Z� A�� Ä� 8$ set� _ ¸¹i��.

at isolation¾�� isolation level(0, 1, 2 ·� 3)/ fA.��. � u/ Í]2� ¡å ¾�� � �7� Æ�z� ¯Ù X� Ï�(Á�Ö�isolation level 1)- 01.��. at isolation u? p+ ¾� ·�declare cursor 7�Ì 01� wx��. at isolation/ éÒ� l? ¡å 0124 Adaptive Server� �7 )- return.��.

• into u/ 012� ¾�� �Ú 012� ¡å

• �ã¾� �� 012� ¡å

• create view 7 w� ¾�� �Ú 012� ¡å

• insert 7 w� ¾�� �Ú 012� ¡å

• for browse u/ 012� ¾�� �Ú 012� ¡å

union ÑÕ&v ¾� £�2� ¡å at isolation u? @fO select�y fAz> .��. at isolation read uncommitted- fA2�¾� �D holdlock, noholdlock ·� shared- fA2� ¡åAdaptive Server� ¡Ó- �Í2Ó at isolation u/ �D.��.�� isolation level�� holdlock� at isolationB� å� ¶�vtx��. isolation level$ ��� &¯� �1? Transact-SQLUser's Guide- ��2�D�.

CIS(Component Integration Services)v Z�¿z wZ4 �Ï�P at isolation/ 01� ÷x��.

386

14A 9B: select – setuser

read uncommitted | 0¾� �= isolation level 0/ fA.��.

read committed | 1¾� �= isolation level 1/ fA.��.

repeatable read | 2¾� �= isolation level 2- fA.��.

serializable | 3¾� �= isolation level 3/ fA.��.

for browseDB-Library �¼ ¤1 G�K¥ w� Adaptive Server� ä�z� SQL 7� ô �vz> .��. &¯� �1? Open ClientDB-Library Reference Manual/ ��2�D�.

plan "abstract plan"¾�- �±¿2S �� Abstract Plan(AP)/ fA.��. AbstractPlan(AP)? �Å ¦� ·� ,Ô ¦�+ wZW Abstract Plan(AP)�� fA���. &¯� �1? Performance and Tuning Guide� 30� "Creating and Using Abstract Plans"- ��2�D�.

�� 1 publishers U�V� MN �$ _/ �,.��.

select * from publishers

pub_id pub_name city state------ --------------------------- -------------------- -----0736 New Age Books Boston MA 0877 Binnet & Hardley Washington DC 1389 Algodata Infosystems Berkeley CA

�� 2 publishers U�V� jA _� MN �/ �,.��.

select pub_id, pub_name, city, state from publishers

�� 3 publishers U�V� jA _� MN �/ �,2O 2^�_ �[/ �Å2Ó �� 7&_/ �v.��.

select "The publisher’s name is", Publisher = pub_name, pub_id from publishers

Publisher pub_id----------------------- ----------------------------- ------The publisher’s name is New Age Books 0736 The publisher’s name is Binnet & Hardley 0877 The publisher’s name is Algodata Infosystems 1389

387

select

�� 4 titles U�V� jA _� MN �/ �,2O _ �[/ �Å.��.

select type as Type, price as Pricefrom titles

�� 5 select into �= locking ­#$ h�f \Ï/ fA.��.

select title_id, title, price into bus_titleslock datarows with reservepagegap = 10from titleswhere type = "business"

�� 6 7T±Z� lockzf �? �Ì �,.��. �� 01&vexclusive lock/ vA �? returnzf �x��.

select title, pricefrom titles readpast where type = "news" and price between $20 and $30

�� 7 jA _$ �/ �,2O 8$- =D U�V§ #advance_rpt H�.��.

select pub_id, total = sum (total_sales) into #advance_rptfrom titles where advance < $10000 and total_sales is not null group by pub_id having count(*) > 1

�� 8 g� _/ Ñ82O 8$- =D U�V§ #tempnamesH�.��.

select "Author_name" = au_fname + " " + au_lname into #tempnames from authors

�� 9 jA _$ �/ �,2O 8$- �Y�� �2�� ��%� return2Ó �( AB- ÌX��.

select type, price, advance from titles order by type desc compute avg(price), sum(advance) by type compute sum(price), sum(advance)

388

14A 9B: select – setuser

�� 10 jA _$ �/ �,2O price� advance _� .¦- ¦Õ.��.

select type, price, advance from titlescompute sum(price), sum(advance)

�� 11 vÏ� $20 �Y§ ÊÌ ��2� titles U�V� m0ñ§coffeetabletitles U�V/ ÌX��.

select * into coffeetabletitles from titleswhere price > $20

�� 12 titles U�V� Q m0ñ§ newtitles U�V/ ÌX��.

select * into newtitles from titleswhere 1 = 0

�� 13 vÏ� $20 �Y§ ÊÌ ��2� S£ authors U�V/ 6��Ö.��.

select * into authors from titles where price > $20

�� 14

select title_id, title from titles (index title_id_ind prefetch 16) where title_id like "BU%"

üÈ@�H JÖ- �C.��.

�� 15 syb_identity ìý�- 012O sales_east R sales_west U�V� IDENTITY _/ �,.��.

select sales_east.syb_identity, sales_west.syb_identityfrom sales_east, sales_west

�� 16 IDENTITY _/ vf� titles U�V� m0ñ§ newtitles U�V/ ÌX��.

select *, row_id = identity(10)into newtitles from titles

�� 17 ¾� �� Ö×ØÙ isolation level/ fA.��.

select pub_id, pub_namefrom publishersat isolation read uncommitted

�� 18 repeatable read isolation level/ 012O titles� �,.��. Ö×ØÙ� C�� �ef �� 01&v ;</ $� �� 2/ ¡2<^ R�� ÷x��.

389

select

begin transelect type, avg(price) from titles group by typeat isolation repeatable read

�� 19 ¾�- �= �µ A¬ 01z� üÈ@�H JÖ- �C.��.

select ord_num from salesdetail (index salesdetail parallel 3)

�� 20 title_id _� titleauthor R titles U�V/ �§.��. 8$set� 15B� 4 pricev ��� �� wx��.

select au_id, titles.title_id, title, pricefrom titleauthor inner join titleson titleauthor.title_id = titles.title_idand price > 15

�� 21 8$ set� authors U�V� MN H&v ��z wx��.�«6&� l? ¬D <½2f �� H&� pub_name _ NULL2/ Í�.��. �«6&§ Cheryl Carson R Abraham Bennet$l? ¬D <½2� H&Ì pub_name _ NULL� é: 2/ Í�.��.

select au_fname, au_lname, pub_namefrom authors left join publisherson authors.city = publishers.city

�� 22 '- t, ID \ÏZ� S£ U�V(oldtable)� � U�V(newtable)/ Í�234 select into 7� �y$ l� fA=> .��.

select identity into newtable with identity_gap = 20from oldtable

ID \Ï �� &¯� �1? Transact-SQL User's Guide� 7�"Creating Databases and Tables"� "Managing Identity Gaps in Tables"pq/ ��2�D�.

�� • �� 7�� @vvf� select 7 w� ìý�� �7 ^T¨ ¶�� 01z> .��.

• select 7� �� !"# � 4096i��.

• �� SQL �"$� U³�/ �=� all ìý�- select �y01� wx��. Á�Ö� alli��. ñ7� 01� all?distinct� í�z� ìý�i��. +, �mz� _ Y�÷�ÝÞ� MN �? 8$ �����.

390

14A 9B: select – setuser

• create table, create view R select into 7�� 'Ð� _ �¸��+! ² ��z w� ¡å CI R Adaptive Server ìý�� l? =�� 7&v _ �¸ ��� wx��. �¸��+! ��zf �� ¡å � �¸? #%& õö/ X => .��.

• like� ^T� 7&_? 255 �ÖB� 0 ÷x��

• 256g �Y� _/ ��2� U�V�� select...for browse üÙ/ 01� ÷x��.

• U�V v�(alias)SÌ é�ä create table, create view R selectinto 7 w� _ �¸¬ #%& õö/ X => .��.

• select- 01=� +, ��� 2� NULL§ U�V�,� NULL� 31zf �� U�V� ���- ci234 �ñ U�V�NULL ÀÖ� �� �Å 2/ i�=> .��. '- t,NULL 2/ 312f �� advances U�V ���- ci2S �=� � '��� NULL ��- "0"Z� �Å.��.

insert advancesselect pub_id, isnull(advance, 0) from titles

isnull � - 012f �� ¡å � �@? NULL� é: MN �/ advances U�V ci2Ó titles U�V� advance _ NULL� ��� MN � �= ) ÎDf- Í�.��.

���- �� l? ­#Z� �Å� ÷� ¡å 01&� NULL2/ ��2� ���- NOT NULL� fA� _ ci� ÷x��.

U�V� �7? d+� wfÌ +, ���� NULL2 31 O,� �- wx��. sp_help- 012O U�Vw� _� NULL ��/ L§.��.

• select 7/ 012O returnz� text ·� image ���� Á�Ö0�� 32Ki��. set textsize- 012O � 2/  ¡.��."� ¯Ù �� ÂS� �«   § @@textsize H�zwx��. jA `ä��Ö ¼GÖâ� Adaptive Server �K�� � set textsize �@/ Æ�� wx��.

• �Ï Adaptive Server� ���� �Ï G�DH U�/ 012O ÝÞ� wx��. &¯� �1? create procedure R execute- ��2�D�.

391

select

• declare cursor �= Ä� A�� 01z� select 7� í�D from u� ��z> .��. 2fÌ compute, for browse ·�into u? ��� ÷x��. select 7 �y$ l? �7� ��z w� ¡å Ä�� øS �1 R 6��Ö Æv�Z� \½���.

• distinct üÙ

• group by u

• s¦ � (Aggregate function)

• union ÑÕ&

order by u� ��� select 7/ 012O �� G�DH � Ä�- ��2� ¡å � Ä�¬ @vvf� øS �1Z� \½���. ·� 6��Ö v�Z� \½zoä¬ 01&� � �Y� U�V� �§� select 7 �= A�� Ä�- 012O�/ R�� ÷x��. &¯� �1? declare cursor- ��2�D�.

•   2/ �{2� select 7� � �Y� �/ return2� ¡å @fOZ� return� 2�   �{���. '- t4 �y$ lx��.

declare @x varchar(40)select @x = pub_name from publishersprint @x(3 rows affected)Algodata Infosystems

ANSI 9. �� ��

• ANSI �, R Ð, �§ �7/ 012O ¾�- Í�2S �í�D 4�� "Ð, �§"$ Transact-SQL User's Guide� "Joins:Retrieving Data From Several Tables"- ø B�D�.

select into ��

• select into� p¦� 5d.��. ¨y p¦� ��� U�V/ÌtÓ �y p¦� fA� _/ ��� U�V ci.��.

�� S£ U�V/ select into� wx��.

select into d5 �= ci� �? S¹zf �S �7 ddl in tran���Q�E üÙ� true� �Az w¬ 01& A� Ö×ØÙ �� select into- Æ�� ÷x��. select into d5 �� h�f �{� S¹zm� 4 select into d5? Ö×ØÙ �K- j¦ wx��.

392

14A 9B: select – setuser

� U�V/ ÌN � select into 7 �&v �Í2� ¡åAdaptive Server� U�V/ &dZ� P�<^ ¨y ��� h�f� �{/ &dZ� =�2f .34!. �D �24 )v �Í2S � ¨y h�f ci� MN �? h�f né wx��. )v �Í2f �¬¹ B�2S �=� select into�y @@error �«   � 2/ Ý0.��. drop table 7/012O ��� U�V/ �<2Ó select into 7/ �D Æ�.��.

• � U�V� �[? ���Q�E� Ó�2W #%& õö/X => .��. ·� =D U�V select into- 01� wx��('� 7, 8 R 11 ��).

• SX U�V$ ��� MN õö, �( �] ·� Á�Ö� ��� U�V� �Pzf �x��. sp_bindrule R sp_bindefault- 012� � U�V �� §� õö ·� Á�Öi��.

• select into� SX U�V� max_rows_per_page 2/ �P2f �ZW max_rows_per_page� 2� 0§ ��� U�V/ ÌX��.sp_chgattribute- 012O max_rows_per_page 2/ �A.��.

• ;� U�V select into- 012S �=� select into/bulkcopy/pllsort üÙ? sp_dboption/ Æ�2O true� �Az> .��. 01&� =D U�V select into- 012S �=� select into/bulkcopy/pllsort üÙ/ true� �A� ��v ÷x��. KL24 =D U�V? u�� m�zf �S �7i��.

���Q�E� select into- 01� � dump transaction �@/ 01234 í�D �Å ���Q�E 'G- Æ�=> .��. select into d5? h�f �{Ì S¹2W ��� ��  ¡0¢? S¹2f �x��. �ä� Ö×ØÙ �K�  ¡ 0¢/ m�� ÷x��. � ¡å dump transaction 7/ Æ�24 ) ÎDfv ^T^� dump database- 012äÓ M3 ���.

�� ÌtA ���Q�E� select into/bulkcopy/pllsort üÙ? Sñ±Z� false� �A���. Á�Ö �A/  ¡234model ���Q�E� � üÙ/ true� �A2�D�.

• dump databasev Æ�z� d² select into� B� ©�© Æ����.

• where u� <M �]/ 012O select into- 0124 ���v ÷� �m U�V/ Ìt wx��('� 12 ��).

393

select

• 01&� s¦� (Aggregate function) ·� =�� !"#���� �, ¸¹� _ �= _ �¸/ i�=> .��. �,¸¹� =�� Y , ÕÛ ·� 7& !"#, �� � ·�Ñ8/ 0124 ;</ $� �Y ¢¸ �� _ �¸� ��.��. _ �¸? �� #%&v z> 2W �+!� �>.��('� 7 R 8 ��).

• � � NULL 2/ 312m� convert ·� isnull �Ð� � -��2� MN _? NULL 2/ 31.��.

• 01&� 01& A� Ö×ØÙ �� ·� compute u$ d+� �7� select into- 01� ÷x��.

• IDENTITY _/ 8$ U�V� �,234 select 7� column_list _ �[(·� syb_identity ìý�)/ ��.��. ��� _?�y$ l? õö/ ����.

• IDENTITY _� H �Y �,z� ¡å � U�V�NOT NULL� A����. IDENTITY e�/ Ye2f �x��.

• IDENTITY _� !"#� +,� �,z� ¡å 8$ _?IDENTITY e�/ Ye2f �x��. !"#� MN _�NULL/ 312� ¡å NULL� Í�zW 312f ��¡å NOT NULL� Í����.

• select 7 group by u ·� s¦� (Aggregate function)v��z w� ¡å 8$ _? IDENTITY e�/ Ye2f�x��. IDENTITY _� ¦v ��� _? NULL� Í�zW �� _? NOT NULL� Í����.

• ��� ·� �§� w� U�V� �,� IDENTITY _?IDENTITY e�/ �f2f �x��. IDENTITY _ RNULL _� ���(union)� U�V ��z w� ¡å��� _? NULL� A����. ��zf �? ¡å NOTNULL� A����.

• 01&� O) IDENTITY _/ vf� � U�V/ ÌtS �=� select into- 01� ÷x��. select 7 S£� IDENTITY_$ column_name = identity(precision)� l? �#� � IDENTITY fA� ��� ¡å � �7 �&v �Í.��.

• CIS(Component Integration Services)v Z�¿z wÓ into U�V� Adaptive Server Y½��4 Adaptive Server� �Àm0 �Ë/ 012O ���- � U�V m0.��. �ÏU�V select into- 012S � å� select into/bulkcopy ���Q�E üÙ/ true� �A.��.

• Embedded SQL �@§ select into host_var_list� ��� &¯��1? Open Client Embedded SQL Reference Manual/ ��2�D�.

394

14A 9B: select – setuser

select...into0 ��� #: b? NULL YZ �[

• ���- �,23� �Y _� NULL 31 O,- convert �@/ 012O  ¡.��. '- t, �y? titles U�V�temp_titlesä� Tæ U�V� ���- �,2fÌ total_sales_/ null� not null�  ³.��.

select title, convert (char(100) not null, total_sales) total_salesinto #tempsales from titles

select...into� lock ef QD

• select...into� �Ú lock üÙ/ 012O �@Z� Í�� U�V� locking ­#/ fA� wx��. locking ­#/ fA2f�Z4 lock scheme �� �g  � �A� Á�Ö locking ­#� ±1���.

• lock üÙ/ 01� � max_rows_per_page, exp_row_size, reservepagegap$ l? C\ �� e�¬ fA� wx��.

sp_chgattribute DEF G�DH- 012O select into� Í��U�V �� C\ �� e�/  ¡� wx��.

index, prefetch ) lru | mru ��

• index, prefetch R lru | mru üÙ? §iE, ÃD R ¾� Æ�/ �� i/�� ­®/ fA.��. � üÙ? Adaptive Server üÈ@�H� �, å�.��. � üÙ? ��2© 01=> 2W set statistics io on$ ��� �� ;</ í�D L§=> .��. � üÙ� 01$ ��� &¯� �1? Performance andTuning Guide- ��2�D�.

parallel ��

• parallel üÙ? Adaptive Server üÈ@�Hv �µ ̈ � 01� w� 56& E��� - òO ���. degree_of_parallelism? ��� max parallel degreeB� ` ÷x��. ��� maxparallel degreeB� 4 2/ fA2� ¡å üÈ@�H� parallelüÙ/ �D.��.

• O) 56& G�¯E� 8$v �.z� ¡å Adaptive Servervreturn2� _� ¶�� ù Æ�@� �- wx��. partitionedU�V� +A� ¶�� �/ v³�34 order by u/ 012<^ ·� ¾�� from u parallel 1/ 012O �µ ¾� Æ�/ �D.��.

395

select

• �y �] � 2^v �§ ¡å parallel/ fA2� from u? �D���.

• 6��Ö ·� ci/ �= select 7� 01���.

• from u? Ä� A�� 01���.

• parallel? �ã¾�� MN �, ¾� V¹ �� from u01���.

• select 7? 2^� �- ÌX��.

• U�V? Ð, �§� �, U�Vi��.

• ¾�� U�V �� min ·� max- fA2Ó §iE- fA.��.

• clustered unpartitioned §iEv fAz<^ � §iEv �+� parallel üÙi��.

• ¾�� U�V �= exists- fA.��.

• �� �g  § max scan parallel degree� 2? 1�W ¾�� §iE- fA.��.

• nonclustered §iEv ��z wx��. §iE ���� &¯� �1? Performance and Tuning Guide� 9�"How Indexes Work"- ��2�D�.

• U�V? DEF U�V ·� vY U�Vi��.

• ¾�� OR ­®/ 012O ¨����. OR ­® �� ��? Performance and Tuning Guide- ��2�D�.

• � ¾�� � � �/ 01&© return� i��.

readpast ��

• readpast üÙ/ 0124 select �@� �� 56� �A� U³ Æ� lockZ� §� V�� ÷� fA� U�V ܯE� wx��. readpast ¾�� data-only locked U�V�Ì �� wx��.

• readpast üÙ� allpages-locked U�V �= fAz4 readpastüÙ? �D���. �@? ={ �@�^ ¯Ù �= fA�isolation level� 5d.��. isolation level� 0�4 oÈ øSv �zW �@? lock� �Z�,� 2/ return2Ó V��? 2f �x��. isolation level� 1�<^ 3�4 �@? U³ Æ� lock� w� h�f- ø> � �Ì V��.��.

396

14A 9B: select – setuser

• select �@� U�V �� ¯Ù X� isolation level$ readpast \� YU 51� ! 14-2 ^� wx��.

� 14-2: CN ��� isolation level4 readpast� 34

• readpast- fA2� select �@? �y/ ��2� ¡å )ÎDf� �Ú �&v �Í.��.

• 0�^ read uncommitted- fA� at isolation u

• 3 ·� serializable/ fA� at isolation u

• d+� U�V� holdlock ìý�

• readpast- fA2� select ¾� at isolation 2 ·� at isolation repeatable readv fAz4 �7�^ Ö×ØÙ� C�� �efreadpast U�V� shared lock� �f���.

• readpast üÙ� fA� select �@� U³ Æ� lock/ ß� àEÖ _/ Ì^� ¡å readpast lock? �/ ÝÞ2O null 2/ ß� àEÖ _/ return.��. � ¡å� NULL2/ ��2� àEÖ _$ _� lockz NULL2� returnz� àEÖ _ \�Ô� zf �x��.

�V isolation level =3

0, read uncommitted (@ û )

readpast- È�Iɲ ÎXIS T# £¤¥�� æ8 J� À� *+,Q�returnI� !� Õ�S- 5�b��.

1, read committed >* {� lock� J� À�5 ´�S� �cdy û# À�5 ´�SQ²�lock� �SIS TU��.

2, repeatable read >* {� lock }¯4 -S� À�5 ´�S� tuIy shared lock# F q� £¤¥�� $ªD P#S À q� ´�SQ² �SI� £¤¥�� $ªD P#S EFH" ·Ê ´�SQ² lock4 �S?��.

3, serializable readpast� È�Iy ��# (� 3Q² MÀ���. >* {� lock� J� À�5 ´�S- ·¸ Aef���.

397

set

56

7� select ��? Á�Ö� U�V�^ � ¼�&© wZW � ¼�&� �� 01&© ��/ #¬� wx��.

89 �� – compute �, create index, create trigger, delete, group by � having �, insert, order by �, set, union ���, update, where �

'( – avg, count, isnull, max, min, sum

��� ���� – sp_cachestrategy, sp_chgattribute, sp_dboption

set�� 01&� 56 ¯Ù S\ �� Adaptive Server ¾� ¨� üÙ/

�A2Ó Ö�< ·� �� G�DH � +, üÙ/ �A.��.

�� set ansinull {on | off}

set ansi_permissions {on | off}

set arithabort [arith_overflow | numeric_truncation]{on | off}

set arithignore [arith_overflow] {on | off}

set {chained, close on endtran, nocount, noexec, parseonly, procid,self_recursion, showplan, sort_resources} {on | off}

�# $% "# ��

SQL92 +£ (� >* �K# Transact-SQL ÎÍ.��.

• � ��A4 iæ w: select into

• lock �

• compute�

• �g D "é '(

• index �, prefetch, parallel D lru | mru

• holdlock, noholdlock D shared ���

• "column_heading = column_name"

• :X^ ��A �� D � ��

• for browse �Q J� select

• group by | Q �Å2S T� F�]((Aggregate function)R -SS T� �4 ab | Q² *+

• at isolation repeatable read | 2 ��

398

14A 9B: select – setuser

set char_convert {off | on [with {error | no_error}] |charset [with {error | no_error}]}

set cis_rpc_handling {on | off}

set [clientname client_name | clienthostname host_name | clientapplname application_name]

set cursor rows number for cursor_name

set {datefirst number, dateformat format,language language}

set fipsflagger {on | off}

set flushmessage {on | off}

set forceplan {on | off}

set identity_insert [database.[owner.]]table_name{on | off}

set jtc {on | off}

set lock { wait [ numsecs ] | nowait }

set offsets {select, from, order, compute, table,procedure, statement, param, execute} {on | off}

set parallel_degree number

set plan {dump | load } [group_name] {on | off}

set plan exists check {on | off}

set plan replace {on | off}

set prefetch [on|off]

set process_limit_action {abort | quiet | warning}

set proxy login_name

set quoted_identifier {on | off}

set role {"sa_role" | "sso_role" | "oper_role" | role_name [with passwd "password"]} {on | off}

set {rowcount number, textsize number}

set scan_parallel_degree number

set session authorization login_name

set sort_merge {on | off}

set statistics {io, subquerycache, time} {on | off}

set statistics simulate { on | off }

set strict_dtm_enforcement {on | off}

set string_rtruncation {on | off}

set table count number

399

set

set textsize {number}

set transaction isolation level { [ read uncommitted | 0 ] | [ read committed | 1 ] |[ repeatable read | 2 ]| [ serializable | 3 ] }

set transactional_rpc {on | off}

���� ansinull s¦ � (aggregate function)� NULL 2§ ÑÕ&� 2�SQL92 !X$ U³�f O,- 8A.��. set ansinull on/ 012� ¡å Adaptive Server� s¦ � (aggregate function)v ¦Õ� NULL 2§ ÑÕ&- R�� �@� ¡Ó- �Í.��.� �g  � Adaptive Serverv *U(=) ·� ,*U(!=) kª� NULL 2/ ¦Õ2� ­# ;</ 9:f �x��.

'- t set ansinull off(Á�Ö2)- 012O titles U�V �y¾�- �� ¡å

select max(total_sales) from titles

Adaptive Server� �y/ return.��.

-----------22246

2fÌ set ansinull on/ 012O d+� ¾�- �� ¡å Adaptive Server� total_sales _� NULL 2/ ��2S �7d+� 2$ ) ÎDf- return.��.

-----------22246

Warning - null value eliminated in set function

� ÎDf� total_sales� +, ÀÖ� Æ� 2 �� NULL� ��z � U�V� MN �± �� �Å «� ���- C�� ÷y/ ^T���. 2fÌ 01 v�� ��� � return� 2? v� t? 2i��.

ansi_permissionsdelete R update 7 �� SQL92 �� �� 0¢� Ý0 O,-8A.��. Á�Ö� offi��. ! 14-3? �� �� 0¢/ ^T���.

400

14A 9B: select – setuser

� 14-3: y��2 � ;<� ��� ��

arithabortÕÛ )v �Í2� ¡å Adaptive Serverv 5d2� ­#/fA.��. vf arithabort üÙ§ arithabort arith_overflow� arithabort numeric_truncation? �� ��� ÕÛ )- ¨�.��.ù üÙ/ %¬� �A2<^ ·� 2^� set arithabort on ·� setarithabort off 7/ 012O üÙ/ �A� wx��.

• arithabort arith_overflow� �D± ·� ^D±Z� ��� ��/  ³2� d² 0Z� ̂ rS ) ·� A�¬(P)v H2z� ¡å Adaptive Serverv 5d2� ­#/ fA.��. ���� )� ��� )i��. Á�Ö �A§ arithabort arith_overflow on? )v �Í� �Å Ö×ØÙ/ TI(rollback).��. Ö×ØÙ� ��zf �� 7:� )v�Í2� ¡å arithabort arith_overflow on? 7: w� �� �@/ TI(rollback)2f �fÌ Adaptive Server� )v�Í� �7 �y ^�� MN �7/ Æ�2f �x��.

arithabort arith_overflow off� �A� ¡å Adaptive Server� )v �Í� �7/ �f2fÌ Ö×ØÙ ·� 7: w��� �7/ ¦e=� ¨�.��.

• arithabort numeric_truncation? ^D±Z� ��� ��/  ³2� d² A� : ��� &ã v æÆz� ¡å AdaptiveServerv 5d2� ­#/ fA.��. explicit conversion� &ã v æÆz� ¡å ¡Óv ^T^f �Ó 8$vtruncation���. Á�Ö �A§ arithabort numeric_truncation on? )v �Í� �7/ �f2fÌ Adaptive Server� Ö×ØÙ ·� 7: w� �� 7/ ¦e=� ¨�.��.arithabort numeric_truncation off� �A2� ¡å Adaptive Server� ¾� 8$- truncation2Ó G�¯E- ¦e.��.

��

set ansi_permissions off)� ��< d<

set ansi_permissions on)���< d<

update • 3� úXI� �Q c: update Ú:

• 3� úXI� �Q c: update Ú:

• where �Q 5�5� ·Ê �Q c: select Ú:

• set � o�h9 ·Ê �Q c: select Ú:

delete • ��AQ c: delete Ú: • ��AQ c: delete Ú:

• where �Q 5�5� ·Ê �Q c: select Ú:

401

set

arithignore arith_overflow 0Z� ̂ rS ·� A�¬(P) æÆ � Adaptive Serverv ÎDf- !D�f O,- fA.��. Sñ±Z� arithignore üÙ? off� �Az wx��. Á�Ö �A� Adaptive Server� .&�P|�v ^T^� ¾� �y ¡Ó ÎDf- !D.��.Adaptive Serverv �P|� )- �D2¬¹ 234 set arithignore on/ 01.��. üÙ§ arith_overflow ìý�� é� ;</ 9:f �Ó Í]� wx��.

chained¯Ù D5 f��^ Ö×ØÙ� B�� �� ¨y ��� ÝÞ ·� ��� A 7 � ¢� Ö×ØÙ/ D5.��. ÑË M�� Adaptive Server� delete, fetch, insert, open, select R update�l? �7 ¢� ^D±Z� begin transaction �@/ Æ�.��.Ö×ØÙ ��� set chained- Æ�� ÷x��.

402

14A 9B: select – setuser

char_convertAdaptive Server� `ä��Ö 0�� 7& s.  ³/ �A2<^ =�.��. `ä��Öv Open Client DB-Library ��E 4.6�Y/ 012� ¡å `ä��Ö� �P� �� 7& s./ 01.��. �K§ G�¯E �  ³? �Az wZW `ä��Öv 01 �§ 7& s. �ä Á�Ö� �A���. ·� 01&� set char_convert charset/ 012O �P 7& s.$ ST`ä��Ö 7& s. 0��  ³/ D5� wx��.

charset? 7& s.� ID�<^ ·� type� 2� 2000B� 5?syscharsets� �[� � wx��.

set char_convert off�  ³� �A/ =�2m� 7&�  ³zf�Ó ä ����. set char_convert on? =��  ³/ �D �A.��. �K§ G�¯E � 7& s.  ³� �Azf �<^set char_convert �@ �= �Azf �? ¡å set char_convert on? ) ÎDf- �Í.��.

set char_convert charsetZ� 7& s.  ³/ �;`/ � AdaptiveServerv �;�  ³/ �� ÷/ ¡å  ³ Y�� �; �$ d+� Y�- �f.��. '- t  ³� set char_convertcharset �@ � off� �A� ¡å  ³? �; �&v �Í�¡å �A� =�� Y�- �f.��.

with no_error üÙ� ��� ¡å Adaptive Server� 7&- ̀ ä��Ö� 7& s.Z�  ³� ÷/ � Adaptive Server� ¤1G�K¥ �B2f �x��. `ä��Öv Adaptive ServerÑ8� ¡å ) S¹? 6S �Az wx��. ) S¹/012f �Z3� ¡å 01&� set char_convert {on | charset} withno_error- 012O ù ¯Ù �= ) S¹/ =�=> .��.¯Ù �� ) S¹/ �D �A234 set char_convert {on |charset} with error- 01.��.

) BÓ� Z�¿ O,� Y�÷�  ³� ÷� �Ö�ASCII °y!(?)� ªÅ���.

7& s.  ³� ) ¨�� ��� &¯� ��? ��� �����- ��2�D�.

cis_rpc_handlingCIS(Component Integration Services)v outbound �Ï G�DHU�(RPC) �;/ Sñ±Z� ¨�2�f O,- fA.��.

403

set

clientapplname¤1 G�K¥ g% �[/ �{.��. �J© 24 d+� ¤1 G�K¥ �[/ 012� Adaptive Server O) `ä��Öv Ñ8� DEF� `ä��Ö- �Ô2� � �1.��. ¤1 G�K¥ � �[/ �{24 sysprocesses U�V � �[� ^T>��.

clienthostnameUEÖ g% �[/ �{.��. �J© 24 d+� UEÖ �[/ 012� Adaptive Server O) `ä��Öv Ñ8� DEF� `ä��Ö- �Ô2� � �1.��. UEÖ � �[/ �{24 sysprocesses U�V � �[� ^T>��.

clientname`ä��Ö g% �[/ �{.��. �J© 24 d+� `ä��Ö �[/ 012� Adaptive Server O) `ä��Öv Ñ8� DEF� `ä��Ö- �Ô2� � �1.��. 01&� �[/ �{24 sysprocesses U�V � �[� ^T>��.

close on endtranAdaptive Serverv Ö×ØÙ� B�� � Ö×ØÙ �� MNÄ� ÑÕ&- §¬¹ �@.��. Ö×ØÙ? commit ·�rollback 7 �=� B����. 2fÌ � üÙ(�� G�DH,Ö�< *)/ �A� í� ��� ��� Ä�Ì ;</ 9q��. Ä� í� ��� &¯� �1? Transact-SQL User'sGuide- ��2�D�.

�v� ��$ ��� &¯� �1? ��� �� ���- ��2�D�.

cursor rows Adaptive Serverv ̀ ä��Ö ¤1 G�K¥� ù Ä� fetch �; �= � number- return2¬¹ �@.��. number� ¼ �� ÷� .& ��� ·� integer ��� �Å   v � wx��. numberv 0B� 5<^ l? ¡å � 2? 1� �A���. Ä�� §S R _S Y� �= cursor rows üÙ/ �A� wx��. 2fÌ � üÙ? into u� ��� fetch �; ;</ 9:f �x��. cursor_name? returnz� �� g - �A2� Ä�- fA.��.

datefirst¨y �+/ 1� 7ef �A.��. us_english �� Á�Ö� 1(+�+)i��.

404

14A 9B: select – setuser

dateformatdatetime ·� smalldatetime ���- i�2S �= ¾¿ ,Ô§month/day/year� ¶�- �A.��. ��� §&� mdy, dmy,ymd, ydm, myd, dymi��. us_english �� Á�Ö� mdyi��.

fipsflagger ÀÖ� X SQL92 �= Transact-SQL L�&v 01z� ¡å Adaptive Serverv ¡Ó ÎDf- !D2�f O,- fA.��. Sñ±Z� Adaptive Server� 01&v k!X SQL/ 012� �- M3 ½f �x��. � üÙ? SQL L�&- 01� w¬¹ .��. ANSIv é: SQL �@/ Æ�2� ¡å ¨�v C����.

flushmessage Adaptive Serverv 01&© ÎDf- return2� �- fA.��. Sñ±Z� ÎDf- �Í� ¾�v C�z<^ P¤� 1À� 6$� �ef ÎDf� P¤ H����. set flushmessageon/ 012O ÎDfv �Í24 ÚD 01&© return.��.

forceplan ¾� üÈ@�Hv ¾�� from u w� U�V� ¶�- ¾�¦�� �§ ¶�� 012¬¹ .��. +í±Z� üÈ@�Hv ��� ¦�/ �,2f F� ¡å forceplan� 01���.±.2f �? ¦�/ )�� 0124 i/�� R �� ¬ù� ª;</ 9� wx��. &¯� �1? Performance and TuningGuide- ��2�D�.

405

set

identity_insertU�V� IDENTITY _ �D±§ ci� 31z�f O,-fA.��. IDENTITY _ �� 6��Ö� u�� 31zf�x��. � üÙ? SX U�V�Ì 01� wx��. ·�� üÙ? Ö�< �� � ·� s.$ �Ú 01� ÷x��.

identity_insert table_name on/ �A24 U�V ¼�&, ���Q�E ¼�& ·� DEF ��&� IDENTITY _ �D±Z�2/ ci� wx��. IDENTITY _ 2/ ci24 01&� _ �� D� 2/ fA2<^ )� R�� �/ m�� wx��. IDENTITY _ �= unique §iE- Ìtf �? ¡å Adaptive Server� ci� 2� Ó��/ L§2f �ZW 01&� =�� # - ci� wx��.

U�V ¼�&, ���Q�E ¼�& ·� DEF ��&� IDENTITY _� ��� U�V� set identity_insert table_nameon �@/ 012O IDENTITY _ 2/ dZ� ci� wx��. 2fÌ identity_insertv on§ ¡å �y$ l? 01&ÌIDENTITY _ 2/ Æ�� ci� wx��.

• U�V ¼�&

• U�V ¼�& �= �D±§ insert ��/ ,O$? ���Q�E ¼�&

• setuser �@/ 012O U�V ¼�&- ��2� ���Q�E ¼�&

identity_insert table_name off� �A24 IDENTITY _ �D±§ ci/ �f2O Á�Ö d5/ m�.��. 01&� ¯Ù �� p+ ���Q�E U�V �= ��Nf set identity_inserttable_name on/ 01� wx��.

jtc�§ �� `�H- �A/=�.��. &¯� �1? Performanceand Tuning Guide- ��2�D�.

languageDEF ÎDf- !D2� �� A# �[i��. �� Adaptive Server �:z> .��. Á�Ö �� us_englishi��.

nocount�7� ;</ $� �� !D- �.��. set nocount on? � !D- =�2Ó set nocount off� � !D- �D �A.��.

406

14A 9B: select – setuser

noexecù ¾�- ��+2fÌ Æ�2f� �x��. noexec� showplan$ �Ú &½ 01���. noexec on/ �A� � noexec off- �A� �ef set �@/ ��� �e �@? Æ�zf �x��.

lock wait)- �f2Ó return2S � �@� lock/ �u2S �= �S2� D\/ fA.��.

numsecs�@� lock/ �u2S �= �S2� D\/ 6� fA.��.0,� A ��2§ 2147483647ef� 2/ 01� wx��.

lock nowait�@� lock/ ÚD �u� ÷� ¡å )- return2Ó �@ �&v �Í2¬¹ fA.��. set lock nowait� set lock wait 0$d+.��.

offsetsTransact-SQL 7� ¾� D5 �: �� fA� ìý�� �:- return.��. ìý� ̧ ¹? y@� �Ô� ̧ ¹Z� �y$l? Transact-SQL 7 �� 2^- ��.��. select, from, order,compute, table, procedure, statement, param R execute )v ÷�¡å Adaptive Server� �G5/ return.��. � üÙ? OpenClient DB-Library�Ì 01���.

parallel_degree�µ ¾� Æ�� 01z� 56& G�¯E� �� �� g - fA.��. � g � max parallel degree �� �g  � �A� ¾�{ 56& G�¯E� g B� 5<^ lé> .��.@@parallel_degree �«   � "� �A/ H�.��.

parseonlyù ¾�� �7/ Ý0� �y ¾�- ��+2<^ Æ�2f �Ó ) ÎDf- return.��. �� G�DH ·� Ö�< �� parseonly- 012f @�D�.

planAbstract Plan(AP) �@/ ̂ T���. &¯� �1? Performanceand Tuning Guide� 30� "Creating and Using Abstract Plans"-��2�D�.

407

set

dump"� Ñ8 �� Abstract Plan(AP) N¨- �A2<^ =�.��. group_name� fAzf �? ¡å ¦�? Á�Ö Kï§ap_stdout H����.

load"� Ñ8 �� Abstract Plan(AP) ��- �A2<^ =�.��. group_name� fAzf �? ¡å ¦�? Á�Ö Kï§ap_stdin� �����.

group_name¦�/ ��2Ó H�2� � 01z� Abstract Plan(AP) Kï��[i��.

exists checkset plan load� �Ú 0124 01&% ÃD w� Abstract Plan(AP) Kï� �� 20g� ¾� �� =D ì- H�� wx��.

replace¦� N¨ M�� S£ Abstract Plan(AP)�  ¡/ �A2<^=�.��. Sñ±Z� ¦�  ¡? =�z wx��.

prefetch��� ÃD �õM i/��/ �A2<^ =�.��.

process_limit_action56& G�¯E� g v aÔ2f �? ¡å Adaptive Serverv �µ ¾�- �2�f O,- fA.��. � ¡å process_limit_action/ quiet� �A24 Adaptive Server� 01 v�� G�¯E� g - 6$2f �� �µ A¬- 012¬¹ ¦�/ �A.��.01� w� 56& G�¯E� g v aÔ2f �? ¡å process_limit_action/ warningZ� �A24 Adaptive Server� ¦�/ �A� � ¡Ó ÎDf- ^T���. ·� process_limit_action/ abort� �A24 Adaptive Server� ¾�- �f2Ó v1 56& G�¯E� g v aÔ2f ��� �� ÎDf- ^T���.

procid�� G�DH �= Í�� �/ ä�2S � å� �� G�DH� ID HU- 01&v é: Open Client DB-Library/C�return.��.

408

14A 9B: select – setuser

proxy login_name� ��, �K§ �[ R suid(�P 01& ID)- vh wx��. login_name �= ��� �K§/ master..syslogins� �+!� � fA.��. �Ò� �K§ �[ R suid� bév34 �Ò� login_name$ �Ú set proxy- 01.��.

&¯� �1? 421 h�f� "G¹D 01"/ ��2�D�.

quoted_identifierAdaptive Server� �Ô #%& §# O,- fA.��. Sñ±Z� quoted_identifier� off� �Az wZW MN #%&� ��#%&� õö/ X => .��. set quoted_identifier on/ 012� ¡å 01&� 4 �+! ² #%&- ��2O M�A� é: 7&, �� ¡å� 31zf �� 7& ·� '(� D52� U�V, � R _ �[ */ 01� wx��. �Ô #%&�28 �Ö- 6$� ÷ZW GÖÖÀ� �� �= §#zf�/ ¬ wÓ DEF G�DH� �g  � 01z� ¡å'Y: F� 8$v ^T¾ ¬ wx��.

quoted_identifierv onZ� �A� ¡å 4 �+! ��� MN 7&_? #%&� ¨����. 7& ·� �A 7&_� 5? �+!- 01.��.

role"� ¯Ù� jA T(role)/ �A2<^ =�.��. �K§24 01&© ,O� MN DEF T(role)� �A���. set rolerole_name off- 012O T(role)/ =�2Ó ��� ¡å set rolerole_name on/ 012O T(role)/ �D �A.��. DEF T(role)? sa_role, sso_role R oper_rolei��. "� ���Q�E� 01&v é�Ó "guset" 01&v ÷� ¡å� 01&v 01� w� �P 01& IDv ÷S �7 sa_role off- �A� ÷x��.

role_nameDEF B² �{&v ÌN 01& A� T(role)� �[i��. 01& A� T(role)? Sñ±Z� =�z wx��. 01& A�T(role)/ �K§� Æ�234 01& ·� DEF B² �{&� set role on/ 01=> .��.

with passwdT(role)/ Z�¿2S �� VU- fA.��. 01& A� T(role) O,� VUv w� ¡å T(role)/ Æ�2S �= � VU- fA=> .��.

409

set

rowcountAdaptive Serverv fA� g � �� ±1� � ¾�(select,insert, update ·� delete) ¨�- �p2¬¹ .��. number� ¼ �� ÷� .& ��� ·� integer ��� �Å   v � wx��. � üÙ/ =�234 �y/ 01.��.

set rowcount 0

scan_parallel_degree=D Sí� E�(unpartitioned U�V� �µ §iE E� R�µ U�V E�)� ��� ¯Ù fA �µ A¬- fA.��.� .&� max scan parallel degree �� �g  � "� 2B� 5<^ lé> .��. @@scan_parallel_degree �«   � "��A/ H�.��.

self_recursionAdaptive Serverv EE� �D 5d2S �= Ö�<- 312�f O,- fA.��. (�- sV-¬­äÓ .��.) Sñ±Z�Adaptive Server� Ö�<� &v �à- 312f �x��.� üÙ? "�� `ä��Ö ¯Ù�Ì �Az> 2W � üÙ� ;<? Ö�<� í� �ä �����. '- t,self_recursion onZ� �A� Ö�<v �� Ö�<� 5d/ +Z��4 � üÙ? off� zbé ò��. � üÙ? Ö�< ��Ìd52W 01& ¯Ù� ;</ 9:f �x��.

session authorization �y ¡å- �Ð24 set proxy� d+.��. Ú set session authorization? SQL !X/ �[fÌ set proxy� Transact-SQL L�i��.

showplan¾� ¨�- �� ¦�� ��/ Í�.��. showplan� 8$��� Ap �1.��. showplan? �� G�DH ·� Ö�<�� 01z� ¡å 8$- ��2f �x��. ·� �µ ¾�� showplan ��� ÂT=�� �A ¾� ¦�� �����.&¯� �1? Performance and Tuning Guide- ��2�D�.

sort_merge¯Ù � Aµ-�. �§� 01/ �A2<^ =�.��. &¯� �1? Performance and Tuning Guide- ��2�D�.

410

14A 9B: select – setuser

sort_resourcescreate index 7 �� Aµ ¦�� ��/ Í�.��. sort_resources� 8$� Aµ d5� bµ ·� �µ� �z�f O,- 8A2� � �1.��. sort_resoucesv onZ� �A� ¡å AdaptiveServer� Aµ ¦�/ ��2fÌ create index 7/ Æ�2f� �x��. &¯� �1? Performance and Tuning Guide� 24�"Parallel Sorting"/ ��2�D�.

statistics io�7� ��2� ù U�V$ ��� �y$ l? �¦ AB-!D.��.

• U�V ܯE W (E� I�Ö)

• /�± øS� W (ÎM�� ܯE� h�f)

• °�± øS� W (���Q�E Á �E ܯE)

ù �@� statistics io� Í�� P¤� g - !D.��.

Adaptive Serverv �¼E ��/ Æ�2¬¹ �A� ¡å statisticsio¬ @vvf� �Å i/�� k1/ !D.��. &¯� �1?Performance and Tuning Guide� 34� "Using the set statisticsCommands"- ��2�D�.

statistics subquerycacheù �ã¾� �� ÃD ±� W , ÃD Æë W , �ã ¾� ÃD w� �� - !D.��.

statistics timeAdaptive Serverv ù �@/ Ô-2Ó ��+2� � ¼�� D\/ !D.��. statistics time? �@� ù p¦ �=� AdaptiveServerv �@/ Æ�2S �= 01� D\/ !D.��. D\? ��6 p� ·� S¦@� �� A� 2§ timetickZ� !D���.

statistics simulate üÈ@�Hv ¾�- �±¿2S �= simulated statistics- 012¬¹ fA.��.

strict_dtm_enforcement �Pv Adaptive Server Ö×ØÙ �A �kE- f�2f ���P� Ö×ØÙ/ �P�f O,- fA.��. Á�Ö2?strict dtm enforcement �� �g  � Ye���.

411

set

string_rtruncation insert ·� update �@� char, unichar, varchar ·� univarchar 7&_/ truncation� � Adaptive Serverv SQLSTATE 'Ð- �Í2�f O,- fA.��. truncation� 7&_� CIZ�Ì ��� ¡å 'Ðv �Í2f �x��. Á�Ö �A§ off� SQLSTATE'Ð- �Í2f �ZW 7&_? p¶k truncation���.

table count Adaptive Serverv �§/ �±¿2� d² dD Ó3� w� U�V� - �A.��. 01z� Á�Ö� �§ w� U�V� �ä ����.

�� 2? 0-8i��. 0 2? Á�Ö d5/ ��A.��. 8B�4 2? 8� \½���. table count� +, �§ ¾�� �±¿-<YD� wfÌ ��+ k1� Kv.��.

textsizeselect 7 �= returnz� text ·� image �� ���� �� ÂS- �Ö p�� fA.��. @@textsize �«   � "� �A/ H�.��. textsize- Á�Ö ÂS(32K)� ��A234 �y �@/ 01.��.

set textsize 0

isql� Á�Ö� 32KBi��. +, `ä��Ö ¼GÖâ�Á�Ö2? �� 2Z� �A���.

transaction isolation level¯Ù �� Ö×ØÙ isolation level/ �A.��. � üÙ/ �A24 "� ·� ¢Z�� MN Ö×ØÙ? � isolation level� d5.��.

.@/0 12 �a) n�/0 122 - 25 4

26 - 37 3

38 - 50 2

412

14A 9B: select – setuser

read uncommitted | 0isolation level 0� E�? °� lock¬ ��2f �x��. �ä� X 0 E�� 8$� E�� A�z� d²  ¡� wx��. Sñ U�V�  ¡Z� §= E� �:v �Æ� ¡å � E�/ �D D5234 unique §iEv ��.��. unique §iEv ÷Z4 E�� �f� wx��.

Sñ±Z� øS �1 ���Q�E Y½2f �� U�V�� X 0 E��� unique §iEv ��.��. �y$ l� Adaptive Serverv nonunique §iE ·� U�V E�/ )�� �,2¬¹ 2O � �� 0¢/ �D� wx��.

select * from table_name(index table_name)

Sñ U�V� ZdZ� §= E�� C�zS � �f� wx��.

read committed | 1Sñ±Z� Adaptive Server� Ö×ØÙ isolation level? readcommitted ·� 1i��. � X�� ��� �= shared readlock/ 01� wx��.

repeatable read | 2 kím øS- ­f.��.

serializable | 3isolation level 3/ fA2� ¡å Adaptive Server� Ö×ØÙ�MN select R readtext d5 holdlock/ ±1.��. ·� ÑË M�� �A2� ¡å Ö×ØÙ/ ^D±Z� D52� MN ��� ÝÞ ·� A 7 �=� isolation level� ;</ ���.

transactional_rpc�Ï G�DH U�� ¨�- �.��. Ö×ØÙ� �S �§¡å � üÙ� onZ� �Az4 RPCv Adaptive Server �=�A���. � üÙ� off� �Az� ¡å �Ï G�DH U�?Adaptive Server 0�Ö ¨�S �= ¨����. Á�Ö2?enable xact coordination �� �g  � 2� Ye���.

�� 1 ù ¾�- �� ¨� ¦� ��/ return2fÌ ¾�- Æ�2f� �x��.

set showplan, noexec on go select * from publishers go

�� 2 select 7 �= returnz� text ·� image ���� ��/100 �Ö� �A.��.

413

set

set textsize 100

�� 3 ùù� insert, update, delete R select 7 �=� AdaptiveServer� ¨y � �/ ±1� � ¾� ¨�- �p.��. '- t4 �y$ lx��.

select title_id, price from titlestitle_id price-------- ----------BU1032 19.99BU1111 11.95BU2075 2.99BU7832 19.99

(4 rows affected)

set rowcount 4

�� 4 7& s.  ³/ Z�¿2O `ä��Öv 01 �§ 7&s./ �[� Á�Ö� 7& s./ �A.��. ·� 7&- `ä��Ö� 7& s.Z�  ³� ÷� ¡å Adaptive Server� `ä��Ö ·� ¤1 G�K¥ �B.��.

set char_convert on with error

�� 5 "� � �@/ Æ�2� 01&� "mary"ä� �K§$Mary� �P 01& ID- 012O �P� 562Ó wx��.

set proxy "mary"

�� 6 '� 5- !"2� �� ­®i��.

set session authorization "mary"

�� 7 test_cursor- 012� `ä��Öv �;2� Ñe fetch 7 �= ùù 5g� �/ return.��.

set cursor rows 5 for test_cursor

�� 8 stores_south U�V� IDENTITY _ 100/ ci� �y �_ o �Y� �D±§ ci/ �f.��. syb_identity ìý��01/ ��2O Adaptive Server� IDENTITY _ �[/ � ìý��  ¡.��.

set identity_insert stores_south ongoinsert stores_south (syb_identity)values (100)goset identity_insert stores_south offgo

414

14A 9B: select – setuser

�� 9 Ö×ØÙ� Æ�z� d² Ö×ØÙ w� ùù� select 7 øS lock/ Æ�.��.

set transaction isolation level 3

�� 10 "� ¯Ù� 01&� DEF ��& T(role)/ kZ�¿.��.

set role "sa_role" off

�� 11 01&v Transact-SQL L�/ 0124 ¡Ó ÎDf- !D2¬¹ Adaptive Server �B.��.

set fipsflagger on

01&v k!X SQL/ 012� ¡å �y$ l� .��.

use pubs2go

Adaptive Server� �y$ l� !D.��.

SQL statement on line number 1 contains Non-ANSI text. The error is caused due to the use of use database.

�� 12 ÀÖ� X SQL92 !X$ U³z� SQL *U(=) R ,*U(!=) kª ·� s¦ � (Aggregate function)� NULL 2§ ÑÕ&- ¦Õ2¬¹ Adaptive Server �B.��.

set ansinull on

set ansinull on/ 012� ¡å Adaptive Serverv 2^ �Y� _ ·� �� NULL 2/ �ù24 s¦ � (Aggregate function) R� ¦� �y$ l? SQLSTATE ¡Ó- �Í.��.

Warning - null value eliminated in set function

*U ·� ,*U ÑÕ&� 2 �� 2^v NULL�4 kª 8$� UNKNOWN� ���. '- t, �y ¾�� ansinull M���/ return2f �x��.

select * from titles where price = null

set ansinull off- 012� ¡å d+� ¾�� pricev NULL§ �/return.��.

�� 13 char, unichar ·� nchar 7&_� truncationz� ¡å AdaptiveServerv 'Ð- �Í2¬¹ .��.

set string_rtruncation on

415

set

insert ·� update 7� 7&_/ truncation2� ¡å Adaptive Server� �y$ l� !D.��.

string data, right truncation

�� 14 4 �+! ² ��� MN 7&_/ #%&� ¨�2¬¹Adaptive Server �B.��. quoted_identifierv onZ� �A� ¡å U�V �[ "!*&strange_table"$ _ �[ "emp’s_name"? ��� #%& �[i��.

set quoted_identifier ongocreate table "!*&strange_table"

("emp’s_name" char(10), age int)

goset quoted_identifier offgo

�� 15 CIS(Component Integration Services)v outbound RPC �;/ Sñ±Z� ¨�2¬¹ fA.��.

set cis_rpc_handling on

�� 16 Ö×ØÙ� �S �§ ¡å Adaptive Server 0�Ö ¨�S- 012� �� CIS(Component Integration Services) ܯE ­#/ 012O RPC- ¨�2¬¹ fA.��.

set transactional_rpc on

�� 17 "doctor" T(role)/ Z�¿.��. 01&� � �@/ 012O Z�¿23� T(role)/ fA.��.

set role doctor_role on

�� 18 01&v VU- i�24 "doctor" T(role)/ Z�¿.��.

set role doctor_role with passwd "physician" on

�� 19 "doctor" T(role)/ kZ�¿.��.

set role doctor_role off

�� 20 unpartitioned U�V Y�� �µ §iE E� R �µ U�V E�/ �= �� �µ A¬- 4� fA.��.

set scan_parallel_degree 4

�� 21 ¯Ù�^ �� G�DH� �e �@� ) ÎDf- return2Ó �&v �Í2S � lock/ �A2S �= 56 d² �S.��.

set lock wait 5

416

14A 9B: select – setuser

�� 22 ¯Ù�^ �� G�DH� �e �@� �;� lock/ ÚDá/ ÷Z4 ) ÎDf- return2Ó �&v �Í.��.

set lock nowait

�� 23 "� ¯Ù�^ �� G�DH� �e �@� lock/ �A2S �= �S� �S.��.

set lock wait

�� 24 ¯Ù� MN �e ¾�v ím øS Ö×ØÙ isolation level� Æ����.

set transaction isolation level 2

�� 25 dev_plans KïZ� Abstract Plan(AP)/ N¨2¬¹ �A.��.

set plan dump dev_plans on

�� 26 "� ¯Ù�� ¾�- �= dev_plans Kï� AbstractPlan(AP)/ ��2¬¹ �A.��.

set plan load dev_plans on

�� 27 �y 01&- �{.��.

• `ä��Ö �[ alison

• UEÖ �[ money1

• ¤1 G�K¥ �[ webserver2

set clientname ’alison’set clienthostname ’money1’set clientapplname ’webserver2’

�� • +, set üÙ/ �y$ l? KïZ� �Ô� wx��.

• parseonly, noexec, prefetch, showplan, rowcount R nocount� ¾�v Æ�z� ­#/ �.��. parseonly� noexec- dD onZ� �A2� ? �9v øf �x��. rowcount �� Á�Ö �A? 0(MN � return)�Ó, ST �@�� Á�Ö �A? offi��.

• statistics üÙ? ù ¾� �� �� �¦- !D.��. statisticsüÙ �� Á�Ö �A? offi��. noexec, prefetch, showplanR statistics� ��� &¯� �1? Performance and TuningGuide- ��2�D�.

• �ã¾�� return� ���,   ·� !"#/ 012O set u� �� 1024g� _/ 6��Ö� wx��.

417

set

• Adaptive Server� 8$- =-2S �= DB-Library�offsets� procid- 01� wx��. � üÙ �� Á�Ö �A? oni��.

• datefirst, dateformat R language� ¾¿ � , ¾¿ ¶� R ÎDf !D ;</ 9q��. Ö�< ·� �� G�DH�� 01z� ¡å � üÙ? �� �AZ� bévf �x��.

Á�Ö �§ us_english� datefirst� 1(+�+)�Ódateformat? mdy�W ÎDf� us_english� !D���.us_english- ��� +, �� Á�Ö� +�+=1, ��+=2 *�W �� �� ��+=1, ¿�+=2 */ Í�.��.

set language� Adaptive Server� fA� �� ¨y �+ R ¾¿ �#/ �Pv 012¬¹ ^T���. 2fÌ"� ¯Ù� �� Æ�� �D±§ set datefirst ·� setdateformat �@/ �D2f� �x��.

• cursor rows R close on endtran? Adaptive Serverv Ä�- ̈�2� ­# ;</ ���. MN Ä�- vf� cursorrows �� Á�Ö �A? 1�W close on endtran �� Á�Ö �A? offi��.

• chained R transaction isolation level/ 012O AdaptiveServer� SQL !X$ U³z� ­#Z� Ö×ØÙ/ ¨�� wx��.

fipsflagger, string_rtruncation, ansinull, ansi_permissions, arithabort R arithignore� Adaptive Server ) ¨� R SQL !X U³ ñ4 ;</ ���.

�� arithabort R arithignore üÙ? ��E 10.0 �Y� �D A�zÈx��. � üÙ/ ¤1 G�K¥� 012� ¡å �2� 8$v ^T^�f L§2S �= üÙ/ Ý0.��.

• CIS(Component Integration Services)v Z�¿z w� ¡å,01&� cis_rpc_handling R transactional_rpc üÙÌ 01� wx��.

• Adaptive Serverv �µ� �Az w� ¡å parallel_degree Rscan_parallel_degree� ¾� �� �µ A¬- ��.��. �üÙ/ 012� ¡å 01&� �� �g  � 31� 56& G�¯EB� ±? G�¯E- 012¬¹ �µ ¾�- ��2� JÖ- üÈ@�H �C.��. � �g  - 0Z� �A24 �P �Å �� 2� m����.

418

14A 9B: select – setuser

�� �g  � 31� .&B� 4 .&- fA2� ¡åAdaptive Server� ¡Ó ÎDf- ^T� � �� �g  ��A� 2/ 01.��.

• Ö�< ·� �� G�DH �� set �@/ 012� ¡å Ö�< ·� G�DHv Æ�� � �,Ô� set üÙ? �� �AZ� béò��.

�y$ l? üÙ? G�DH ·� Ö�<v Æ�� �¬ �� �AZ� bévf �ZW 01&v � üÙ/ �D±Z� ��A� �ef �Å Adaptive Server ¯Ù/ �= né wx��.

• datefirst

• dateformat

• identity_insert

• language

• quoted_identifier

• � �Y� set üÙ/ fA2� ¡å ¨y �7 )� §=� ��� MN üÙ� �D���. 2fÌ )v �Í2S � fA� üÙ? Æ�zW ��� üÙ 2� �A���.

• 01&© `ä��Ö �[, UEÖ �[ ·� ¤1 G�K¥�[/ �{2� ¡å � �{? "� ¯Ù�Ì 01���.01&v �D �K§� �� � �[t/ �D �{=> .��. � �[� sysprocesses ^T^oä¬ � �[? �� Ý0- �= 01zf �ZW sp_who� ̀ ä��Ö Ñ8� éb¬�Ò �K§ e= w�Ó ^T���. 01& G�¯E �A �� &¯� �1? ��� �� ���- ��2�D�.

• showplan R char_convert- �Ð� MN set üÙ? ÚD �$-^T�W showplan? �e 7:� �$- ^T���. �y?set showplan on/ 012� vf '�- ^T���.

set showplan onselect * from publishers go

pub_id pub_name city state------- ----------------------- ----------- ----- 0736 New Age Books Boston MA 0877 Binnet & Hardley Washington DC 1389 Algodata Infosystems Berkeley CA

419

set

(3 rows affected)

K)^

set showplan on go select * from publishers goQUERY PLAN FOR STATEMENT 1 (at line 1). STEP 1 The type of query is SELECT

FROM TABLE publishers Nested iteration Table Scan Ascending Scan. Positioning at start of table.

pub_id pub_name city state ------ -------------------- ---------- ----0736 New Age Books Boston MA 0877 Binnet & Hardley Washington DC 1389 Algodata Infosystems Berkeley CA (3 rows affected)

>(role) ) set yz

• Adaptive Server �K§2� ¡å 01&© ,O� MN DEF A� T(role)� &dZ� Z�¿���. 01&© ,O� 01& A� T(role)? &dZ� Z�¿zf �x��. 01&© ,O� 01& A� T(role)/ &dZ� Z�¿234sp_modifylogin/ 01.��. sp_modifylogin/ 012� ­®$��� �1? 307 ��� sp_modifylogin/ ��2�D�. T(role)/ �A2Ó =�234 set role role_name on ·� set rolerole_name off- 01.��.

'- t, DEF ��& T(role)/ ,O$? 01&� "� ���Q�E� ���Q�E ¼�&� ID R 01& ID- 01� wx��. 01&� Æ� 01& ID- 01234 �y$ l? �@/ Æ�.��.

set role "sa_role" off

"� ���Q�E� 01&v é�Ó "guest" 01&v ÷�¡å� sa_role off- �A� ÷x��.

420

14A 9B: select – setuser

• Z�Dì3� 01& A� T(role) VUv O,z w� ¡å � T(role)/ �A234 VU- fA=> .��. �ä� �y$ l� i�� wx��.

set role "role_name" with passwd "password" on

uÈ ,¦§z, CIS ) set yz

• ASTCv ¬iz4� cis rpc handling �� j� R set transactional_rpc�@� d5�  ¡zÈx��. �� ��E� cis rpc handling/ �A24 CIS� Client-Library Ñ8/ �=� ,[ RPCv äåGzÈx��. �ä� �A O, Y�÷� cis rpc handling/�A� �@� transactional_rpc d5� �Í`x��. AdaptiveServer 12.0� � d5�  ¡zÈx��. cis rpc handling� �AzÓ transactional_rpcv off§ ¡å Ö×ØÙ �� RPC� 0�Ö ¨�S- �=� äåG���. Ö×ØÙ Ð,� Æ��RPC� CIS� Client-Library Ñ8/ �=� ä����.

• Adaptive Server ÔÕ Ö×ØÙ �� �kEv Z�¿z wZ4 01&� RPC- Ö×ØÙ � � wx��. � RPC- :}~g RPCäÓ .��. Ö×ØÙ RPC� "� Ö×ØÙ� ÷àEÖ 56� ��� w� RPC- �.��. �� l? �Ï 56 p�� �Å Ö×ØÙ� Æ�� 56$ �Ú Ä�zÓ TI(rollback)� wx��.

Ö×ØÙ RPC- 01234 sp_configure- 012O ÔÕ Ö×ØÙ ��- �A� �y set transactional_rpc �@/ Æ�.��.set transactional_rpcv onZ� �AzÓ Ö×ØÙ� �S �§ ¡å Adaptive Server 0�Ö ¨�S�� í�� Adaptive Server� RPC- �A.��.

set transactional_rpc �@� Á�Ö� offi��. set cis_rpc_handling�@? set transactional_rpc �@B� å�.��. cis_rpc_handlingonZ� �A� ¡å MN outbound RPC� CIS(ComponentIntegration Services) �= ¨����.

• set transactional_rpc, set cis_rpc_handling R sp_configure� 01$��� ��? Component Integration Services User’s Guide-��2�D�.

/Á� ��

• set proxy ·� set session authorization �@/ 01234 DEFB² �{&� (H master ���Q�E� set proxy ·� setsession authorization/ Æ�2S �� ��/ ,O=> .��.

• �Ò� login_name$ �Ú set proxy ·� set session authorization/ Æ�24 01&� �� IDv �D �A���.

421

set

• 2^� Ö×ØÙ� set proxy ·� set session authorization/ Æ�� ÷x��.

• Adaptive Server� p 2^� �K§ ID  ¡ X/ 31.��.�ä� ID-  ¡2S �= set proxy ·� set session authorization/ Æ�� 01&� ID- �D  ¡2S � �Ò� ID� zbé v> .��. '- t, 01&� �K§ �[� "ralph"äÓ.��. 01&� "mary"� U�V/ ÌtÓ "joe"� �- ÌN� &�� �K§ ID� bév3Ó .��. �- �= �y$l? �7/ 01.��.

set proxy "mary" create table mary_sales (stor_id char(4), ord_num varchar(20), date datetime)grant select on mary_sales to publicset proxy "ralph"set proxy "joe" create view joes_view (publisher, city, state) as select stor_id, ord_num, date from mary_salesset proxy "ralph"

lock wait ��

• Sñ±Z� lock/ ÚD �u� ÷� Adaptive Server 56?U³ Æ� lock� =�� �ef �S� � ¨�- ¦e.��.� ? numsecs �g  fA� 2� ÷� set lock wait� lx��.

• lock wait period üÙ� w� sp_configure DEF G�DH- 012O �P �Å lock �S D\/ �A� ¬ wx��.

• set lock �@$ �Ú ¯Ù X�^ �� G�DH A�� lock�S D\? �P X� lock �S D\B� å�.��.

• set lock wait- numsecs �� 2/ fA2f �Ó 0124 "� ¯Ù� MN �e �@? �;� lock/ áS �= �S� �S.��.

• sp_sysmon G�DH� lock/ �S2� 56� �S D\ �lock/ áf F� W - BÓ.��.

Õw Ö( ,¦§z isolation level

• Ö×ØÙ isolation level 2� M3A ím øS isolation level?Ö×ØÙ� C�� �ef �7� ø? MN h�f� lock/�f.��.

422

14A 9B: select – setuser

• kím øS� � Ö×ØÙ� U�V� �/ øÓ H� Ö×ØÙ� � �/ A2O { H� Ö×ØÙ� C�zS � ¡ 0¢/ ±1� � �Í.��. { H� Ö×ØÙ� �/ �D øZ4 �� 2/ vh wZm� ¨y øS� ímzf �x��. ím øS� Ö×ØÙ d² shared lock/ �f2W lock� ��^ lock� h�f� �� Ö×ØÙ/ V��.��.

simulated statistics ��

• optdiag �Ç�È G�K¥� simulate M�- 0124 simulatedstatistics- ���Q�E� ��� wx��. ¯Ù� set statistics simulate on� Æ�zÈZ4 ¾�� U�V �� Æ��¦ �� simulated statistics- 012O �±¿���.

set yz� =�Àq Ô× ��

• ! 14-4� ¯Ù üÙ$ ��� AB- ��2� �«   v^_z wx��. � ̄ Ù üÙ? set �@ �= ����.

� 14-4: CN MN� ��$ �� ��

S�TU���P Java¥ ØÙ fipsflagger ��

• fipsflaggerv �A� ¡å �y$ l? L�� 01z4 AdaptiveServer� ¡Ó ÎDf- !D.��.

• installjava �Ç�È

• remove java �@

s� 7" ��

@@char_convert F, F? '*� ��2S T# !ã 04 \]?��. F, F? '*� ��:!ã 14 \]?��.

@@isolation Transact-SQL p"��9 ®Å isolation level4 \]?��. @@isolation# ¬� (�(0, 1 q� 3)9 34 �?��.

@@options r�9 set ��Q c: 16�( �®4 \]?��.

@parallel_degree _c 1� X�9 ®Å úX4 \]?��.

@@rowcount gSv ¾- �+^ À9 (R \]?��. À4 return2S T� if, update ��

delete FV W# ·Ê ��# @@rowcountR 0H" úX?��. »²� �¡0² @@rowcount� _© fetch Ái P#S »² ¿V setQ² ����£"return^ À9 �� x(R 5�L��.

@@rowcount� nocount- onH" úX^ !ãQ� ¶��£���.

@scan_parallel_degree nonclustered �Ò� �jQ c: _c 1� X�9 ®Å úX4 \]?��.

@@textsize select- return2� text q� image ���9 ¹�£ ô N:4 \]?��. isqlQ c: ³÷£ N: ô � 32KB�y � ³÷£ ô � ����£ `p£î8Q �� �E��. r�Q² set textsize" '!O ( JU��.

@@tranchained Transact-SQL p"��9 ®Å £¤¥� ·�R \]?��. @@tranchained� ¼Âk ·�Q 04 return2� Âk ·�Q 14 return?��.

423

set

• Java `ÒE- ��� ��Z� ��2� _ R   ��

• ��- �= Java-SQL !"#/ 012� 7

• fipsflagger� Y�� Java μ�v Æ�2� ÕÛ !"# ;</ ½f �x��.

• ���Q�E�� Java� ��� &¯� �1? Java in Adaptive Server Enterprise- ��2�D�.

56

SQL92 !X? �� Adaptive Server ��E� Transact-SQL d5$�� d5/ fA.��. MN Embedded-SQL ��+) ¤1 G�K¥� U³ d5� Sñ±Z� Z�¿���. � d5 !X$ +:=> 2� ST ¤1 G�K¥? ! 14-5 ̂ _� set üÙ/ 01� wx��.

� 14-5: �2+ ��� SQL92 �7 �' MN

7� +í±Z� set ��? Á�Ö� MN 01&© �C���. �ä�%¬� 01 ��� ��2f �x��. 'Ð�� set role, set proxyR set session authorization� wx��.

�# $% "#SQL92 Transact-SQL ÎÍ

UV ��

ansi_permissions on ansinull on

arithabort off arithabort numeric_truncation on

arithignore off chained on

close on endtran on fipsflagger on

quoted_identifier on string_rtruncation on

transaction isolation level 3

424

14A 9B: select – setuser

set role/ 01234 DEF ��& ·� DEF B² �{&�,�� T(role)/ ,O$é> .��. 01&v jA T(role)/ vfÓwS �7 ���Q�E ce� 3vzÈ�4 ���Q�E-012� d² 01&� � T(role)/ =�� ÷x��. '- t, 01&v info_plan ���Q�E- 012¬¹ AY±Z� 3vzf �LfÌ DEF ��&�� � ���Q�E- 012� ¡åinfo_plan/ 012� d² sa_role off- �A��4 Adaptive Server� ) ÎDf- return.��.

set proxy ·� set session authorization/ 01234 DEF B² �{&�,� ��/ ,O$é> .��.

89 �� – create trigger, fetch, insert, grant, lock table, revoke

'( – convert

���� – isql, optdiag

setuser�� ���Q�E ¼�&v �� 01&- �� 012¬¹ 31.��.

�� setuser ["user_name"]

���Q�E ¼�&� Maryv ¼�2� authors U�V� ��/Joe© ,O2S �= Mary� ID- +D±Z� �1� wx��.

setuser "mary" go grant select on authors to joe setuser go

�� • �� 01&� ���Q�E Å- 012Ó ��/ ,O2WÅ- Ìt<^ �� ¸±/ �=� ���Q�E ¼�&�setuser- 012O �� 01&� ID- �1� wx��.

• ���Q�E ¼�&v setuser �@/ 012� ¡å AdaptiveServer� ���Q�E ¼�&� ��/ Ý02f �Ó �� 012� 01&� ��/ Ý0.��. �� 012� 01&����Q�E� sysusers U�V ^_z> .��.

• setuser� �Å ���Q�E�Ì �� ;</ 9:W �ÏG�DH U� ·� �� ���Q�E� ŠܯE� ;</ 9:f �x��.

425

setuser

• �� setuser �@� fAz<^ ·� use �@/ 012O "����Q�Ev  ¡� �ef setuser �@? ��2© né wx��.

• 01& �[ ÷� setuser �@/ Æ�24 ���Q�E 01&� �Ò IDv �D �A���.

• DEF ��&� setuser- 012O �� 01&v ¼�2© �Å- Ìt wx��. 2fÌ DEF ��&� �� DEFÐ,� 562m� setuser �@/ 012O �� 01&� ��/ �u� ÷x��.

56

7� setuser ��? Á�Ö� ���Q�E ¼�&© wZW #¬� ÷x��.

89 �� – grant, revoke, use

�# $% "#SQL92 Transact-SQL ÎÍ

426

1 5 ���� ��: shutdown – writetext

shutdown�� �@/ Æ�2� Adaptive Server, ={ �Å Backup Server ·� �

Ï Backup Server- B�.��. � �@? DEF ��&Ì Æ�� wx��.

�� shutdown [srvname] [with {wait | nowait}]

���� srvnameAdaptive Server� sysservers DEF U�V w� Backup Server� /�± �[i��. �Å Adaptive Server- B�� �� ��g  v ��2f �x��.

with waitÁ�Öi��. � 2? Adaptive Server ·� Backup Server- PPk B�.��.

with nowait "� Æ� �§ �7/ C�2f �Ó ÚD Adaptive Server^ Backup Server- B�.��.

�� shutdown with nowait- 0124 IDENTITY _ 2 \Ï� Íw��.

�� 1 shutdown �@/ �2O Adaptive Server- B�.��.

shutdown

�� 2 Adaptive Server- ÚD B�.��.

shutdown with nowait

�� 3 �ŠBackup Server- B�.��.

shutdown SYB_BACKUP

�� 4 �Ï Backup Server REM_BACKUP/ B�.��.

shutdown REM_BACKUP

427

shutdown

�� • nowait üÙ/ 012f �/ ¡å shutdown? Adaptive Server-�y ¶� �ä ��k B�.��.

• �K§/ 01 =�.��(DEF ��& �Ð).

• MN ���Q�E� ÅÂ�§Ö- Æ�.��.

• "� Æ� �§ SQL 7�^ �� G�DHv B�2¬¹ S�¡��.

nowait üÙ ÷� �P- B�24 &d m� G�DH- �= Æ�=> 2� 56À� �¼¿���.

• nowait üÙ/ 012f �Z4 shutdown backup_server �@? Z� 'G R/·� ��v C�� �ef �S.��. Backup Server shutdown �@/ Æ�24 � Backup Server- 012� �'G^ ��v �� D5zf �x��.

• shutdown with nowait �@? ��� Y9�Ì 012�D�. Adaptive Server�� shutdown with nowait- Æ�2S � checkpoint �@/ 012�D�.

• shutdown �@Z�� �Å Adaptive ServerÌ Af� wZW�Ï Adaptive Server� Af� ÷x��.

• Backup Server� �y ¡åÌ Af� wx��.

• � �Pv sysservers U�V ^_� ¡å sp_addserver DEF G�DH� sysservers ÀÖ�- �v.��.

• � �@/ Æ�2� Adaptive Server �� §�h�E �+ � �Pv ^_z wx��.

• sp_helpserver DEF G�DH- 012O Adaptive Server M3A Backup Server� �[/ 8A.��. Backup Server�name (network_name é )/ srvname �g  � fA2�D�. '- t4 �y$ lx��.

sp_helpservername network_name status id ---------- ------------- ------------------------------------ -- REM_BACKUP WHALE_BACKUP timeouts, no net password encryption 3SYB_BACKUP SLUG_BACKUP timeouts, net password encryption 1 eel eel 0 whale whale timeouts, no net password encryption 2

WHALE_BACKUP�ä� �[� �Ï Backup Server- B�234 �y �@/ 01.��.

shutdown REM_BACKUP

428

15A 9B: shutdown – writetext

56

7� shutdown ��? Á�Ö� DEF ��&© wZW #¬� ÷x��.

89 �� – alter database

��� ���� – sp_addserver, sp_helpserver

truncate table�� U�V� MN �/ R�.��.

�� truncate table [[database.]owner.]table_name

���� table_nametruncation� U�V� �[i��. � U�V� �� ���Q�E e� ¡å ���Q�E �[/ fA2Ó ={ ���Q�E l? �[� U�V� � �Y§ ¡å ¼�& �[/ fA.��. owner Á�Ö2? "� 01&�W database Á�Ö2? "� ���Q�Ei��.

authors U�V� MN ���- R�.��.

truncate table authors

�� • truncate table? U�V� MN �/ R�.��. drop table �@/ Æ�2S �ef� U�V ��� MN §iEv ¦e £�.��. K�Ó ={ _ §�� õö, Á�Ö, �( �]? §�� Y�� �fzW Ö�<¬ ¦e Æ����.

• truncate table? MN §iE� ÔÕ h�f- �{ =�.��.U�V � �/ �v� �y� update statistics �@/ Æ�2� / Sè2�D�.

• table truncate� where u� ÷� delete �@$ d+2fÌ � �@B� Ð���. delete� � H � �/ R�2Ó R�� ù�/ Ö×ØÙZ� S¹2fÌ truncate table? ��� h�f �Å- �{ =�2Ó o ±? � �K ÀÖ�- ÌX��. delete� truncate table M ={ ��� R �� §iEv �f2� C\/ �D �;.��.

• R�� �� g%±Z� S¹zf �Zm� truncate table? Ö�<- �ÍD� ÷x��.

�# $% "#SQL92 Transact-SQL ÎÍ

429

union 123

• �� U�V � U�V/ ��2� �� w� ¡å� truncatetable/ 01� ÷x��. Ð, U�V� �/ R�2<^Ð, U�V/ truncation� �y Primary U�V/ truncation.��.

• partitioned U�V�� truncate table �@/ 01� ÷x��.truncate table �@/ Æ�2S � alter table �@� unpartition u/ 012O U�V/ unpartition.��.

where u ÷� delete �@/ 0124 (H U�V/ unpartition2f �é¬ partitioned U�V� MN �/ �<� wx��. � ­®? � H � �/ R�2Ó ùù� delete 56/ S¹2m� truncate table �@B� ©¡��.

56

7� truncate table ��? Á�Ö� U�V ¼�&© wZW #¬� ÷x��. DEF Í0 U�V(sysaudits_01, sysaudits_02, sysaudits_03,� sysaudits_08ef)/ truncation234 DEF B² �{&O>.��.

89 �� – create trigger, delete, drop table

union ����� � �Y� ¾� 8$- 8.2O 2^� 8$ set/ return.��. all

ìý�- fA2f �Z4 �m� �? 8$ set� �<���.

�� select select_list [into clause] [from clause] [where clause] [group by clause] [having clause]

[union [all] select select_list

[from clause] [where clause] [group by clause] [having clause] ]...

[order by clause] [compute clause]

���� union g� select 7� fA� ��� ���/ ÌX��.

all�m ���- R�2f �Ó MN �/ 8$ ��D*��.

�# $% "#SQL92 Transact-SQL ÎÍ

430

15A 9B: shutdown – writetext

into�, ¸¹� fA� �$ where u� �,� �/ S6� �U�V/ ÌX��. union ÑÕ� { H� ¾�Ì into u/ 01� wx��.

�� 1 8$ set� sales� sales_east U�V� stor_id R stor_name_� �1� tò��.

select stor_id, stor_name from sales union select stor_id, stor_name from sales_east

�� 2 { H� ¾�� into u? publishers, stores, stores_east U�V� fA� _� ���(union) �� �B 8$ set� U�Vresults tv¬¹ fA.��.

select pub_id, pub_name, city into resultsfrom publishers union select stor_id, stor_name, city from stores union select stor_id, stor_name, city from stores_east

�� 3 (H sales� sales_east U�V� fA� �� union/ ÌX��. K �y � 8$� publishers� union/ ÌX��. @fOZ� H� 8$� authors� union/ ÌX��.

select au_lname, city, state from authors union ((select stor_name, city, state from sales union select stor_name, city, state from sales_east) union select pub_name, city, state from publishers)

�� • union ¾�� MN �: w/ w� U�V� � 256i��.

• select 7 union/ 01� wx��. '- t4 �y$ lx��.

create viewselect * from Jan1998Salesunion allselect * from Feb1998Salesunion all

431

union 123

• order by� compute u? union 7� @fOÌ ? wZW �B8$� ¶�- A�2<^ �( 2/ ¦Õ.��.

• group by� having u? g%±§ ¾� ��Ì 01� wZW �B 8$ set ;</ 9:¬¹ 01� � ÷x��.

• union ÑÕ&v w� SQL 7� Á�Ö �v ¶�� ®¯� ��¯i��.

• union? �A ÑÕ�m� ¾�v 5 �Y�4 !"# �U-Ó �v ¶�- fA=> .��.

• union 7� { H� ¾�� �B 8$ set� tv� U�V/Ì�� into u� tó wx��. into 7? í�D { H� ¾� Ó> 2W KJf �Z4 ) ÎDfv !D���('� 2 ��).

• union ÑÕ&� insert...select 7 0� Ó/ wx��. '- t4 �y$ lx��.

insert into sales.overall select * from sales union select * from sales_east

• SQL 7� MN �, ¸¹� d+� � !"#� w> .��(_ �[, ÕÛ !"#, s¦ � (Aggregate function) *).'- t4 �y �7? { H� �, ¸¹ H� ¸¹B� o�? !"#� wS �7 ,±u.��.

/* Example of invalid command--shows imbalance */ /* in select list items */select au_id, title_id, au_ord from titleauthor union select stor_id, date from sales

• union 7� �, ¸¹ w� ={ _? í�D d+� ¶�� �Í=> .��. union? g%±Z� ¾� �D� ¶� �ä1� 1� _/ kª2S �7i��.

432

15A 9B: shutdown – writetext

• union 8$� Ìtf� U�V� _ �[? union 7� � ��g%±§ ¾�� v³ü��. �ä� 8$ set� � _ �¸/A�234 { H� ¾�� => .��. K�Ó � �[Z��A� 8$ set(': order by 7)� _/ ��234 { H� select7 w� ={ �[/ 01= ={ _/ ��=> .��. '-t4 �y ¾�� ? ���.

select Cities = city from stores union select city from stores_east order by Cities

• union ÑÕ� +,§ _ ��? d+� ��v ÷x��. ! 15-1? ��� ��$ 8$ U�V w� ={ _� õöi��.

� 15-1: union ��� a4 �� g�J

� �m

• �ã¾�� union ÑÕ&- 01� ÷x��.

• union ÑÕ&� for browse u$ �Ú 01� ÷x��.

• text ·� image ���- �,2� ¾��� union ÑÕ&- 01� ÷x��.

union � � ( jk CD �3 12� �� ( jk CD��� �� >* [ Y(Adaptive Server- ��� '*4 l��H" è2S TK)

Adaptive Server- return2� Qï

� L1 D L2� ·Ê �X � F, L1 D L2 Z @ m hV W# �9 �X � F,

� L1 D L2� �X � �� 3 L1 D L2 Z @ m hV W# �9 �X � �� 3

-' � F, unionQ J� �Q c0 SX^ _c �� W# �9-' � F,

-' � �� 3 unionQ J� �Q c0 SX^ _c �� W# �9-' � �� 3

� � Y, ��� ��(": smallint, int, float, money)

¸ � Z @ XÎ: ��� ��. "R æ8, ��A A9 :�� int ���� ��A B9 0� �� float ���É float- intË� @ XÎ2 PFQ ¿V ��A9 0� �#float ��� ���.

¸ � ú� ·¸ NOT NULL SX NOT NULL SX

433

update

56

89 �� – compute �, declare, group by � having �, order by �, select, where �

'( – convert

update�� ���- �v2<^ S£ ���-  ¡2O S£ �� ���-

 ¡.��.

�� update [[database.]owner.]{table_name | view_name} set [[[database.]owner.]{table_name.|view_name.}]

column_name1 ={expression1|NULL|(select_statement)} |

variable_name1 ={expression1|NULL|(select_statement)}

[, column_name2 = {expression2|NULL|(select_statement)}]... |

[, variable_name2 = {expression2|NULL|(select_statement)}]...

[from [[database.]owner.]{view_name [readpast]|

table_name [readpast] [(index {index_name | table_name }[ prefetch size ][lru|mru])]}

[,[[database.]owner.]{view_name [readpast]|table_name [readpast]

[(index {index_name | table_name }[ prefetch size ][lru|mru])]}]

...][where search_conditions][plan "abstract plan"]

update [[database.]owner.]{table_name | view_name} set [[[database.]owner.]{table_name.|view_name.}]

column_name1 ={expression1 |NULL|(select_statement)} |

variable_name1 =

�# $% "# ��

SQL92 +£ (� >* �K# Transact-SQL ÎÍ.��.

• insert F9 select �Q union *+

• select FQ union ÂG,- J4 P select F9 order by �Q � � N| SX

434

15A 9B: shutdown – writetext

{expression1 |NULL|(select_statement)}[, column_name2 =

{expression2 |NULL|(select_statement)}]... |[, variable_name2 =

{expression2 |NULL|(select_statement)}]...where current of cursor_name

���� table_name | view_name 6��Ö� U�V�^ �� �[i��. U�V�^ �v �����Q�E wZ4 ���Q�E �[/ fA2W ={ ���Q�E l? �[� U�V�^ �v � �Y�4 ¼�& �[/ fA.��. owner� Á�Ö2? "� 01&�W database� Á�Ö2? "� ���Q�Ei��.

set_ �[�^   �[/ fA2Ó � 2/ �{.��. � 2�!"#�^ NULL/ 01� wx��. _ �[ ·�   �[$ 2� � �Y ^_� ¡å� y@� �Ô=> .��.

from�� U�V�^ �� ���- 012O 6��Ö �§ U�V�^ �� �/ A.��.

readpastupdate �@? datarows-locked U�V� lock� =�� ��^datapages-locked U�V� ¡å lock� =�� h�f� �Ì  ¡2¬¹ .��. update...readpast� lock� =�zS- S��f�Ó lock� ��^ h�f- KQ ]s���.

where!X where ui��(where u ��).

index {index_name | table_name}index_name – table_name ܯE 01� §iE- fA.��.�- 6��Ö� �� � üÙ/ 01� ÷x��.

prefetch size i/��� © ��� ÃD� ��z� U�V� i/�� ÂS- KB p�� fA.��. size 2? 2, 4, 8, 16i��. �- 6��Ö� �� � üÙ/ 01� ÷x��. sp_helpcache G�DH� Åv ��z� ÃD^ Á�Ö ÃD� ��� ÂS- BO ���.

CIS(Component Integration Services)- 0124 �Ï �P prefetch- 01� ÷x��.

435

update

lru | mruU�V 01� P¤ ªÅ �]/ fA.��. üÈ@�HvMRU/LRU(�á 0¢/v� �Ò� 0¢) ÑË� U�V/ øt�34 lru- 01.��. ·� ÃD� P¤- P�Ó U�V� �y P¤� ªÅ234 mru- 01.��. �- 6��Ö��� � üÙ/ 01� ÷x��.

where current ofAdaptive Serverv "� Ä� �: cursor_nameZ� !D� U�V�^ �� �/ 6��Ö2¬¹ .��.

index_name6��Ö� §iE �[i��. §iE �[/ fA2f �Z4fA� U�V� MN §iE �� ÔÕ �¦v 6��Ö���.

plan "abstract plan"¾� �±¿ 01� Abstract Plan(AP)/ fA.��. � ¦�?Abstract Plan(AP) �� fAzW �Å ¦� ·� ,Ô ¦��v�.��. &¯� �1? Performance and Tuning Guide� 30� "Creating and Using Abstract Plans"- ��2�D�.

�� 1 authors U�V� MN McBaddensv MacBaddens� ���.

update authors set au_lname = "MacBadden" where au_lname = "McBadden"

�� 2 total_sales _� sales R salesdetail U�V S¹� v� �á� «�- í;2¬¹  ¡.��. �J© 24 ={ ¾¿ ={ �¸ �= «� s.� p 2^Ì S¹z¬¹ � wZW 6��Ö- ��Z� �f� wx��.

update titles set total_sales = total_sales + qty from titles, salesdetail, sales where titles.title_id = salesdetail.title_id and salesdetail.stor_id = sales.stor_id and salesdetail.ord_num = sales.ord_num and sales.date in (select max(sales.date) from sales)

�� 3 title_crsr "� fA� titles U�V w� Ê� vÏ/ $24.95�  ¡.��.

update titles set price = 24.95where current of title_crsr

436

15A 9B: shutdown – writetext

�� 4 IDENTITY _� 4§ �/ èé� Ê vÏ/ $18.95�  ¡.��. Adaptive Server� syb_identity ìý�- IDENTITY _� �[Z�  ¡.��.

update titles set price = 18.95where syb_identity = 4

�� 5 ���   - 012O titles U�V/ 6��Ö.��.

declare @x moneyselect @x = 0update titles set total_sales = total_sales + 1, @x = price where title_id = "BU1032"

�� 6 �� 56� lock/ �f2f �� �/ 6��Ö.��.

update salesdetail set discount = 40 from salesdetail readpast where title_id like "BU1032" and qty > 100

�� • update- 0124 �9 ci� �� 2/  ¡� wx��. � �/ �v234 insert- 01.��.

• update 7 2^ U�V/ �Ó 15gef ��� wx��.

• update� create index �@/ 01= �A� ignore_dup_key, ignore_dup_row R allow_dup_row üÙ$ YU 51.��. &¯��1? create index- ��2�D�.

• fA� U�V�^ U�V� fA� _� update �@/ Æ�24 fA� 56/ Æ�2� Ö�<- A�� wx��.

update ��P �� ��

• select 7   - �A2� $ �0� ­®Z� update 7�set u   - �{� wx��.

• '� 5¨� update 7   - 012S � declare- 012O   - ��2Ó select- 01= 6S¿=> .��.

•   �{? 6��Ö � �A� MN _ �= ��s��.

437

update

• update 7 �{� ��¯   - ��24 ù �� 6��Ö� ��   � "� 2¬  ¡���. �� ��þ "� �/ 6��Ö2S b��   2/ �.��. �y? ù �� 6��Ö�� "� 2� �©  2�f BO ½� '�i��.

�y 7/ 01��Ó vA.��.

declare @x intselect @x=0update table1 set C1=C1+@x, @x=@x+1 where column2=xyz

6��ÖzS � C1� 2? 1i��. �y !� @x   � "� 2� 6��Öz4 �©  ¡z�f BO ���.

• d+� update 7 O)   v �{z4 �   �{� 2? �{ ¸¹� ¶� �ä PäffÌ ¢Y KJf� �x��. v� !? 8$- áZ34 �{� 2/ fA� � �: �£2f @�D�.

• O) �� returnzÓ 1g�   1g _� ks¦v �{z4�   � �B 2? @fO � G�¯Ev zm� � ­®? �12f �x��.

•   2/ �{2� update 7? �A� �� 2/ �A� ��v ÷x��.

• 6��Ö� �/ �A2f �Z4   v �{zf �x��.

• update 7 �{�   � update 7� �ã¾�� �: �¦÷� d+� update w� �ã¾��� ��� ÷x��.

• update 7 2/ �{�   � d+� update 7� where ·�having u� ��� ÷x��.

!

¡� C1 >

¡� @x >

� : C1+@x= wj:, C1

wj:

, C1 >� : @x+1= wj:, @x

wj

: >A 1 0 1+0 1 0+1 1

B 1 1 1+1 2 1+1 2

C 2 2 2+2 4 2+1 3

D 4 3 4+3 7 3+1 4

438

15A 9B: shutdown – writetext

• �§Z� §= �Í� 6��Ö� update 7� ��¯ 2 �{�   � "� 6��Ö �� é: U�V� _/ 01.��. 8$ 2? �§� U�V� �A� �� � � 6��Ö �,� �§ ¶� �ä Päs��.

• 6��Ö�   2? ÁE H�zf �Zm�   6��Ö� update 7� TI(rollback) ;</ $f �x��.

update� ,¦§z ��

• chained transaction mode on/ �A`Ó "� 01 �§ Ö×ØÙ� ÷Z4 Adaptive Server� update 7/ 01= ^D±Z� Ö×ØÙ/ D5.��. 6��Ö- C�234 Ö×ØÙ/commit2<^  ¡ 0¢/ rollback=> .��. '- t4 �y$lx��.

update stores set city = ’Concord’ where stor_id = ’7066’if exists (select t1.city, t2.city from stores t1, stores t2 where t1.city = t2.city and t1.state = t2.state and t1.stor_id < t2.stor_id) rollback transactionelse commit transaction

� 7:� ÑË Ö×ØÙ M�- 012� Ö×ØÙ/ D52Óstores U�V� �/ 6��Ö.��. � U�V� �� H�¼� d+� city R state ABv w� �/ 6��Ö24  ¡ 0¢/ stores U�V� TI(rollback)2Ó Ö×ØÙ/ ô���.KJf �Z4 6��Ö- Æ�2Ó Ö×ØÙ/ ô���.

• Adaptive Server� 01&v ½A Ö×ØÙ� � �/ 2¼�Y 6��Ö2� update 7/ Æ�2f �¬¹ Of �x��.'- t4, � 6��Ö� M title_id MC2022§ Ê vÏ ;</ 9q��. � Ê� �� IDv "mod_cook"�S �7i��.

begin transactionupdate titles set price = price + $10 where title_id = "MC2222"update titlesset price = price * 1.1 where type = "mod_cook"

439

update

�S�,� 9. ��

• update� from u� �§/ Æ�2� ? Transact-SQL/ 6��Ö �� ANSI !X SQL �7Z� L�� i��.update 7 ¨� ­# �7 p+ 7�� 6��Ö� r±zf�x��. Ú, � update 7 �§� wÓ � �§ w� �� U�V� �§ _ +:2� 2� � �Y�4 H� 6��Ö� { H� 6��Ö� � 2� é�ä �Ò 2/ S6� .��.� 8$� G�¯R ¶� �ä Päfm� 'ñ� ÷x��. �y �§/ #$%��.

update titles set total_sales = total_sales + qty from titles t, salesdetail sd where t.title_id = sd.title_id

total_sales 2? salesdetail +:2� �� )® w/ �@�titles� ùù� title_id �= � HgÌ 6��Ö���. ¾��� �§ ¶�^ U�V Partition ·� �1 v�� §iE �ä 8$� �H Päh wx��. 2fÌ �H salesdetail�p+ 2Ì total_sales 2 �v���.

�§ _ +:2� 2� .¦- return23Ó 2� ¡å �ã¾�- 012� �y ¾�� AL� 8$- return.��.

update titles set total_sales = total_sales + (select isnull(sum(qty),0) from salesdetail sd where t.title_id = sd.title_id) from titles t

update� �h S�T ��

• Q 7&_("")/ 01= v  0� 7& ��� ·� text _/ 6��Ö24 CI � 5� ci���. ÓA 0� 7& _? A�� 0�� jýs��.

• C\Ì t w� 7&_� ¡å- �Ð2Ó v  0� _ ���� �9 C\? M R����. C\Ì w� 7&_? CI � 5Z� truncation���. string_rtruncation on/ �A2f�Z4 char, nchar, unichar, varchar, univarchar ·� nvarchar _�fA� 0�B� 6 7&_? M truncation���.

• text _� update24 text _� 6S¿zÓ ��� àEÖ �§�- �{2W àEÖ h�f- 2^ �Y �{.��.

440

15A 9B: shutdown – writetext

¢P0 ��� update

• Ä�- 01= � �/ 6��Ö234 declare cursor- 01= Ä�- A�� �y ={ Ä�- ?��. Ä� �[/ Transact-SQL�g  ^ �Å   � �A24 ² ���. Ä�� 6��Öv v�=> 2W KJf �Z4 Adaptive Server� )-return.��. Ä� 8$ set/ 6��Ö24 Ä� �/ �ÍD�SX U�V �¬ ;</ 9q��.

• update...where current of- 01= fA� table_name ·� view_name? � Ä�- A�� select 7� { H� from u fA� U�V�^ �O> .��. � from u� �§/ 012O�^ U�V/ � �Y ��2� ¡å 6��Ö �§ �^ U�VÌ fA� wx��.

6��Ö� �¬ Ä� �:�  ¡zf �x��. �� SQL7� Ä� �:- �d2f �Z4 ={ Ä� �:� �/ ¦e 6��Ö� wx��.

• Adaptive Server�� Ä�� select_statement _ ¸¹� fAzf �LfÌ select_statement fA� U�V� +,§ _/ 6��Ö� wx��. K)^ for update- 01= column_name_list- fA2Ó � Ä�- ��24 fA� _Ì6��Ö� wx��.

IDENTITY b �S�,

• IDENTITY e�� w� _? SX U�V�^ �- �= 6��Ö� ÷x��. _/ IDENTITY e�/ 01= A��fO,- 8A234 ={ _� SX U�V� sp_help DEFG�DH- 01.��.

• 8$ U�V �,� IDENTITY _? IDENTITY e�� Ye�$ ��= �y õö/ X .��.

• IDENTITY _/ H �Y �,24 � U�V NOT NULL� A�zW IDENTITY e�/ Ye2f �x��.

• IDENTITY _� !"#� +,� �,z4 8$ _? �IDENTITY e�/ Ye2f �x��. !"# NULL�31z� _� wZ4 8$ _? NULL� ÌtfW KJf �Z4 NOT NULL� ���.

• select 7 group by u ·� s¦ � (Aggregate function)v w� ¡å 8$ _? IDENTITY e�/ Ye2f �x��. IDENTITY _� s¦v w� _? NULL� ÌtfWKJf �? _? NOT NULL� ���.

441

update

• ��� ·� �§� w� U�V �,� IDENTITY _?IDENTITY e�/ ¦e �f2f �x��. � U�VIDENTITY _$ NULL _� ���� wZ4 � � _?NULL� A�zW, KJf �? ¡å� NOT NULL� A����.

 0 ÍÚ S�T �S�,

• distinct u/ 01= A�� �- update� ÷x��.

• with check option/ 01= �- ÌN ¡å � �- �= 6��Ö� ù �? ¦e � �- �= ê w> .��. '- t, state "CA" 2� w� ¡å stores_cal �� stores U�V� MN�� tò��. with check option u? �� �, SX �ä ùupdate 7/ Ý0.��.

create view stores_calas select * from storeswhere state = "CA"with check option

state- "CA"v é: �� 2Z�  ¡24 �)� update 7�&v �Í.��.

update stores_calset state = "WA"where store_id = "7066"

• with check option/ 01= �- Ì�� ¡å SX �� �Í�MN �� � �� �, SX/ ÌzD�> .��. �¯H �-�= 6��Ö� MN �? SX �- �= ê w> .��.

stores_cal� �Í� stores_cal30 �v wx��. � � ��fÆ �]� "Net 30"§ California� H� �� ABv twx��.

create view stores_cal30as select * from stores_calwhere payterms = "Net 30"

with check option/ 01= stores_cal/ ÌtÈZm� stores_cal30/ �= 6��Ö� MN �? stores_cal/ �= ê w> .��. state- "CA" Ð� 2Z�  ¡2� �? <,���.

stores_cal30� &ű§ with check option u� ÷y/ ��2�D�. �ä� stores_cal30/ �= "Net 30"� é: payterms 2/01= �/ 6��Ö� wx��. '- t4, � _/ o �Y stores_cal30/ �= ê � ÷fÌ �y update 7? �C� wx��.

442

15A 9B: shutdown – writetext

update stores_cal30set payterms = "Net 60"where stor_id = "7067"

• �y �]� �� é�ä4 � �Y� U�V� ��� _/ �§2� �- �= �/ 6��Ö� ÷x��.

• � � with check option u� ÷x��.

• 6��Ö �§ MN _� d+� SX U�V e.��.

• update 7? with check option u� w� �§ � 01� wx��. � �Y� U�V� ��� _� w� !"#� where u ;</ $� _� wZ4 6��Ö �&v �Í.��.

• �§ �- �= �/ 6��Ö24 ;</ $? MN _? í�D d+� SX U�V e=> .��.

index, prefetch �q lru | mru ��

• index, prefetch R lru | mru� Adaptive Server üÈ@�H� �, å�.��. � üÙ? �¬=� 01=> 2W ¢Y setstatistics io on/ 01= �� 9:� ;</ Ý0=> .��.� üÙ 01$ ��� &¯� �1? Performance and TuningGuide- ��2�D�.

readpast ��

• readpast üÙ? data-only locked U�VÌ ±1���. readpastüÙ� allpages-locked U�V fA� ¡å� �D���.

• readpast üÙ? holdlock üÙ$ �Ú 01� ÷x��. �select �@ üÙ/ fA24 )v �Í24� �@� B����.

• ¯Ù� isolation level� 3�4 readpast üÙ? �D���.

• ¯Ù �� Ö×ØÙ isolation level� 0�4 readpast- 012� update �@? ¡Ó ÎDf- !D2f �x��. datapages-locked U�V� ¡å � �@t? U³zf �� lockZ� lockzf �? MN h�f� �/ �, A.��. datarows-lockedU�V� ¡å� U³zf �� lockZ� lockzf �? ��M ;</ $x��.

• readpast üÙ/ fA� update �@� � �Y� àEÖ _ ±1zÓ �,� { H� àEÖ _ U³zf �� lock� wZ4 readpast locking? ={ �/ ]s���. _ U³zf �� lock� ÷Z4 �@? lock/ �A2Ó _/ A.��. �� �e àEÖ _ U³zf �� lock� w� ¡å� �@� lock/ �A2Ó _/ A� w/ �ef V��.��.

443

update all statistics

• readpast locking �� &¯� �1? Performance and TuningGuide- ��2�D�.

56

7� update ��? Á�Ö� U�V ·� � ¼�&© wZW �� 01&© #¬� wx��.

set ansi_permissions� on�4 6��Ö� U�V �= update ��� w> 2W �v� where u ^T¨ MN _$ set u �y� MN _� select ��/ v³> .��. Sñ±Z� ansi_permissions� offi��.

89 �� – alter table, create default, create index, create rule, create trigger,insert, where �

'( – ptn_data_pgs

��� ���� – sp_bindefault, sp_bindrule, sp_help, sp_helpartition,sp_helpindex, sp_unbindefault, sp_unbindrule

update all statistics�� ½A U�V �� MN �¦ AB- 6��Ö.��.

�� update all statistics table_name

���� table_name�¦v 6��Öz� U�V� �[i��.

salesdetail U�V �� §iE R partition �¦- 6��Ö.��.

update all statistics salesdetail

�# $% "# ��

SQL92 +£ (� >* from � q� :X^ ��A�5 � �� *+# FIPS öÜ- HS2� Transact-SQL ÎÍ.��. �� Ù q� cd | Q �®¯� J� ÙR «: ¶��£� n�T#S� HSO ( å� Transact-SQLÎÍ�y FIPS öÜ- ö�2S TU��.

'( *+# Transact-SQL ÎÍ.��.

readpast� Transact-SQL ÎÍ.��.

444

15A 9B: shutdown – writetext

�� • update all statistics� ½A U�V �� MN �¦ AB- 6��Ö.��. Adaptive Server� h�f ÔÕ �� �¦- U�V � B�2W partitioned U�V�� ¾� G�¯E�µ E�/ 01�f O,� ¾� G�¯E 01� §iE-Ó3� � � �¦- 01.��. ¾� �±¿� H�� �¦�AL� �ä Päs��.

• update all statistics� U�V� MN _ �� �¦- 6��Ö2W� U�V� partition� ¡å partition �¦¬ 6��Ö.��.

• U�V� partitionzf �? ¡å update all statistics� � U�V� update statisticsÌ Æ�.��.

• U�V� partitionz wÓ §iEv ÷� ¡å update all statistics� U�V� update partition statistics- Æ�.��. U�V�partitionz wÓ §iEv wZ4 update all statistics� U�V� update statistics� update partition statistics- Æ�.��.

56

7� update all statistics ��? Á�Ö� U�V ¼�&© wZW #¬� ÷x��.

89 �� – update statistics, update partition statistics

update partition statistics�� partitioned U�V� ù partition� h�f HU �� AB- 6

��Ö.��.

�� update partition statistics table_name [partition_number]

���� table_namepartitioned U�V �[i��.

partition_numberAB- 6��Ö2� partition HUi��. partition HU- fA2f �Z4 update partition statistics� fA� U�V� MNpartition� ��� h�f HU- 6��Ö.��.

�# $% "#SQL92 Transact-SQL ÎÍ

445

update partition statistics

�� • Adaptive Server� h�f ÔÕ �� �¦- partitioned U�V � B�2W G�¯E �µ E�/ 01�f O,- Ó3� � � �¦- 01.��. ¾� �±¿� H�� �¦� AL� �ä Päs��. Adaptive Serverv ab24 ÔÕ ABv ,AL� wx��.

ÔÕ ABv AL�f L§234 data_pgs � - 01= �y$ l� U�V h�f HU- fA.��.

select data_pgs(sysindexes.id, doampg) from sysindexes where sysindexes.id = object_id("table_name")

K �y � U�V� sp_helpartition/ 012Ó Æ� 8$�"ptn_data_pgs" _� HU- o.��. sp_helpartition S¹�h�f HU� ¦� data_pgsv return2� HUB� �� oÄ> .��. sp_helpartition� h�f � OAM h�fv tvS �7i��.

ÔÕ ABv AL2f �Z4 � U�V� update partitionstatistics- Æ�.��. ÔÕ AB- 6��Ö2� d² updatepartition statistics� OAM h�f� partition� � h�f- lock.��.

• ���v w� U�V� update partition statistics- Æ�2<^���v w� U�V� §iE- Ì�� ¡å syspartitions�controlpage _? ={ partition � h�f- v�쬹 6��Ö���.

• update partition statistics� U�V� h�f HU- ñA2� � 01z� � h�f 2/ 6��Ö.��. � �¦� sp_helpartition 01���.

56

7� update partition statistics ��? Á�Ö� U�V ¼�&© wZW#¬� ÷x��.

89 �� – alter table, update all statistics

'( – ptn_data_pgs

��� ���� – sp_helpartition

�# $% "#SQL92 Transact-SQL ÎÍ

446

15A 9B: shutdown – writetext

update statistics�� §iE� MN _�^ U�V� MN _ �= fA� §iE ·�

fA� _� ì 2 ÔÕ �� AB- 6��Ö.��.

�� update statistics table_name [ [index_name] | [( column_list ) ] ][using step values][with consumers = consumers ]

update index statistics table_name [index_name] [using step values][with consumers = consumers ]

���� table_nameupdate statistics� �Ú 01� ¡å table_name? � §iE� ��� U�V� �[i��. Transact-SQL�� §iE �[����Q�E� Ó�� ��v ÷Zm� table_name� � ±i��.

index_name6��Ö� §iE �[i��. §iE �[/ fA2f �Z4fA� U�V� MN §iE �� ÔÕ �¦v 6��Ö���.

column_listy@� Ô�� _ ¸¹i��.

using step valueskEÔK¥ p¦ HU- fA.��. �¦v ÷� _ �=��Á�Ö2� 20i��. _ �� �¦v sysstatistics �9 £�24 Á�Ö2? "�� p¦ i��.

with consumers = consumers column_listv �CzÓ �µ ¾� G�¯Ev 01 v�� ¡åAµ 01� ¼k& G�¯E HU- fA.��.

index§àE� MN _ �� �¦- 6��Ö2¬¹ fA.��.

�� 1 titles U�V� price _ �� �¦- Í�.��.

update statistics titles (price) using 40 values

�� 2 authors U�V� MN §iE� MN _ �� �¦- Í�.��.

update index statistics authors

�� 3 authors U�V� au_names_ix §iE w� MN _ ���¦- Í�.��.

update index statistics authors au_names_ix

447

update statistics

�� • Adaptive Server� ì 2 ÔÕ �¦- ù §iE B�2W ¾� G�¯E 01� §iE 8A � �¦- 01.��.

• ���v w� U�V nonclustered §iE- Í�24 � �§iE �= update statisticsv &dZ� Æ����. ���vw� U�V clustered §iE- Í�24 MN §iE �=update statisticsv &dZ� Æ����.

• ¾� �±¿� �¦� AL� �ä Päs��. §iE� ì2� ©  ¡z4 ={ §iE^ _� update statistics- �D Æ�=> .��. §iE� _ w� �? #� ���v �v,  ¡ ·� �<� ¡å, Ú ì 2 ÔÕ�  ¡� Z� Íùz� ¡å update statistics �@/ 01.��.

• U�V �[ R §iE �[$ �Ú 0124 update statistics�§iE� � _ �� �¦- 6��Ö.��. update statisticsv U�V �[$Ì 01z� ¡å� U�V w� MN §iE� � _ �� �¦- 6��Ö.��.

• update index statistics� U�V �[ R §iE �[$ �Ú 0124 fA� §iE w� MN _ �� �¦- 6��Ö.��. update index statistics U�V �[$Ì 01z� ¡å� U�V� MN §iE w� _ �� �¦- 6��Ö.��.

• §iEzf �? _�^ §iE� � _ �Ð� �[/ fA24 §iE� Í�zf �Ó ={ _ �� �¦Ì Í����.

• _ ¸¹� _/ � �Y fA24 { H� _ �� kEÔK¥$ _ ¸¹� MN c 2� s. �� �¬ �¦- Í�2<^ 6��Ö.��.

• update statistics- 012O _�^ _ ¸¹ �� �¦- Í�234 update statisticsv U�V/ ÝÞ2Ó Aµ/ �=> .��.

• with consumers u? RAID Á �E� partitioned U�V 01z¬¹ �¦zÈZW, � Á �E� Adaptive Server� p+ i/�� Á �E� ^T^fÌ �µ Aµ ��� t? ��/ �S� wx��. &¯� �1? Performance andTuning Guide� 24� "Parallel Sorting"/ ��2�D�.

• ! 15-2� update statistics d² �z� ÝÞ ��, �A�lock �� R Aµ� ��� DSv ^� wx��.

448

15A 9B: shutdown – writetext

� 15-2: tG y��2 K lock, J� � '�

• update index statistics �@? d+� locking, E�, Aµ/ l?§iE X$ _ X �@Z� 012� +�� �¦ 6��Ö 56/ Í�.��. '- t, salesdetail U�V� salesdetail(stor_id, ord_num, title_id)� �[� sales_det_ix§ nonclustered§iE- vf� ¡å

update index statistics salesdetail

� �@? �y$ l? update statistics 56/ �.��.

update statistics salesdetail sales_det_ix update statistics salesdetail (ord_num)update statistics salesdetail (title_id)

• update all statistics �@? U�V� ù §iE �= +��update statistics 56/ Í�2Ó §iEzf �? MN _ �=+�� update statistics 56/ Í�� �y update partition statistics56/ Í�.��.

update statistics �� "!, B¢ H �� Locking��� ��

allpages-locked ��A ��A �j D � nonclustered �Ò�9 p þo Þ�

(� 1; �� 9� ��A lock, ®Å ´�S9 shared lock

data-only locked ��A ��A �j D � nonclustered �Ò�� clustered �Ò�-�Å2� !ã9 p þo Þ�

(� 0; @ û

��� �� clustered �� ��

allpages-locked ��A ��A �j (� 1; �� 9� ��A lock, ®Å ´�S9 shared lock

data-only locked ��A p þo �Ò� Þ� (� 0; @ û

��� �� nonclustered �� ��

allpages-locked ��A p þo �Ò� Þ� (� 1; �� 9� ��A lock, ®Å ´�S9 shared lock

data-only locked ��A p þo �Ò� Þ� (� 0; @ û

��� �� ��

allpages-locked ��A ��A �j, ¦¶ ��A t�,¦¶ ��A X�

(� 1; �� 9� ��A lock, ®Å ´�S9 shared lock

data-only locked ��A ��A �j, ¦¶ ��A t�,¦¶ ��A X�

(� 0; @ û

449

use

• update statistics� �� ��E� 6K��� D master ���Q�E� DEF U�V� Æ�zf �x��. §iE� �,Ô� DEF G�DHv ¾�2� _ £�2W AY±§ 01� ¡å� �)� U�V� update statistics- Æ�� ��v÷x��. 2fÌ AY U�V� ¡åv é�ä4 MN ���Q�E� MN DEF U�V� update statistics- Æ�� wx��. ¾� D �, ��� ��z� �)� U�V�syscurconfigs, sysengines, sysgams, syslisteners, syslocks, syslogs,syslogshold, sysmonitors, sysprocesses, syssecmechs, systestlog, systransactionsv wx��.

56

7� update statistics ��? Á�Ö� U�V ¼�&© wZW �� 01&© #¬� ÷x��. setuser �@Z� U�V ¼�&v � w� ���Q�E ¼�&¬ � �@/ Æ�� wx��.

89 �� – delete statistics

use�� 5623� ���Q�E- fA.��.

�� use database_name

���� database_name_> � ���Q�E �[i��.

use pubs2 go

"� ���Q�E� pubs2i��.

�� • use �@/ Æ�=> ���Q�E� Å- ��� wx��.

• use� �� G�DH ·� Ö�< Ó/ ÷x��.

• v�(alias)/ 0124 01&� �� �[/ 01= ���Q�E- ܯE� wx��. DEF G�DH sp_addalias- 01.��.

56

�# $% "#SQL92 Transact-SQL ÎÍ

�# $% "#SQL92 Transact-SQL ÎÍ

450

15A 9B: shutdown – writetext

7� ���Q�E "guest" ¦A� wZ4 MN 01&v ���Q�E- 01� wx��. ���Q�E "guest" ¦A� ÷Z4 01&� � ���Q�E� ��� 01&�<^ � ���Q�Ev�(alias)� w<^ DEF ��& ·� DEF B² �{&O> .��.

89 �� – create database, drop database

��� ���� – sp_addalias, sp_adduser, sp_modifylogin

waitfor�� jA D\, D\ \Ï ·� �7 V¹ Æ�, �� G�DH ·� Ö×

ØÙ �� �'Ö- fA.��.

�� waitfor { delay time | time time | errorexit| processexit | mirrorexit }

���� delay fA� D\(�Ó 24D\)� f¾ �ef �S2¬¹ AdaptiveServer fD.��.

time fA� D\ef �S2¬¹ Adaptive Server fD.��.

timedatetime ��� 01� w� �# � 2^� D\ ·� 7&���   i��. ¾¿� fA� ÷x��. datetime 2� ¾¿ ,Ô? 31zf �x��.

errorexitÄ� ·� 01& G�¯Ev kAY±Z� B�� �ef �S2¬¹ Adaptive Server fD.��.

processexitÄ� ·� 01& G�¯Ev Ø ���N B�� �ef �S2¬¹ Adaptive Server fD.��.

mirrorexit9) �&v �Í� �ef �S2¬¹ Adaptive Server fD.��.

�� 1 �� 2D 20Ô� z4 �y - 01= chess U�V� 6��ÖzÓ sendmail�ä� G�¯E� Judyv ¼�� U�V �/ ci2O chess U�V � v £���� 0Æ/ Judy© M¡��.

451

waitfor

begin waitfor time "14:20" insert chess(next_move) values(’Q-KR5’) execute sendmail ’judy’ end

�� 2 106 � Adaptive Serverv fA� ÎDf- §Ë.��.

declare @var char(8)select @var = "00:00:10"begin waitfor delay @var print "Ten seconds have passed. Your time is up." end

�� 3 G�¯Ev kAY±Z� B�24 Adaptive Serverv fA� ÎDf- §Ë.��.

begin waitfor errorexit print "Process exited abnormally!"end

�� • waitfor �@/ Æ�2Ó ^4 fA� D\�^ �'Öv �Í2S �ef� Adaptive Server�� Ñ8/ 01� ÷x��.

• kAY±Z� B�� G�¯E- R�2� G�DH� �Ú waitfor errorexit �@/ 0124 ;</ $� G�¯Ev 012� DEF �¼E- k¦ wx��.

• B�� G�¯E- èZ34 sp_who DEF G�DH- 01=sysprocesses U�V/ L§2�D�.

• waitfor time ·� waitfor delay- 01= fA2� D\� D\,Ô, 6- Ó/ wx��. "¾¿ R D\ ��� ��" ��� "hh:mi:ss" �#/ 012�D�.

�� 4D 23Ôef �S2¬¹ Adaptive Server fD.��.

waitfor time "16:23"

1D\ 30Ô/ �S2¬¹ Adaptive Server fD.��.

waitfor delay "01:30"

• DEF D\/  ¡(': +T u( D\� �7 D\/ � D\�� �A)24 waitfor �@¬ fÑ���.

452

15A 9B: shutdown – writetext

• DB-Library G�K¥ � waitfor mirrorexit- 012O 9) �&v �Í24 01&© �- M�¬¹ � wx��.

56

7� waitfor ��? Á�Ö� MN 01&© �C���. �ä� %¬�01 ��� ��2f �x��.

89 �� – begin...end

Uq �¨ – ¾¿ R D\ ��� ��

��� ���� – sp_who

where ��� select, insert, update ·� delete 7 ÝÞ �]/ �A.��.

�� ÝÞ �]? select, insert, update ·� delete 7� where ìý� �� ü��. p+ �7 ÝÞ �]/ � �Y 01� ¡å� and·� or- 01= �]/ Ñ8.��.

where [not] expression comparison_operator expression

where [not] expression [not] like "match_string"[escape "escape_character "]

where [not] expression is [not] null

where [not] expression [not] between expression and expression

where [not]expression [not] in ({value_list | subquery})

where [not] exists (subquery)

where [not] expression comparison_operator {any | all} (subquery)

where [not] column_name join_operator column_name

where [not] logical_expression

where [not] expression {and | or} [not] expression

���� notlike, null, between, in R exists *� /� !"#�^ ìý�- ,A.��.

�# $% "#SQL92 Transact-SQL ÎÍ

453

where !

expression_ �[, Y , � , �ã¾� ·� ÕÛ�^ kÖ ÑÕ&� Ñ8� _ �[, Y R � � �.i��. !"# �� &¯� �1? 179 h�f� "!"#"/ ��2�D�.

comparison_operator�y � 2^i��.

char, nchar, unichar, varchar, univarchar, nvarchar ��� kª D <�M�A D5$ vU�� / Î2W >� M�A ô$ vU�� / Î.��.

�/¼7&� j 7& �v� Adaptive Serverv w� �����; Å� �. ¶� �ä Päs��. '- t4, ¼7&v �7&B� ` wZW �7&v .&B� ` wx��.

kª D� �9 CI/ �D.��. '- t4, "Dirk"� "Dirk "� lx��.

¾¿- kª� � <� ��/ Î2Ó >� ��- Î.��. kªÑÕ&� �Ú 01z� MN 7& R ¾¿ ���� �+!-âi��. '- t4 �y$ lx��.

= "Bennet" > "94609"

¾¿ i� õö �� &¯� �1? "01& A� ��� ��"/ ��2�D�.

� � �F

= WK

> � j

< Ë� �K >= ôÜ5 WK <= ¦Ü5 WK

!= WS TK <> WS TK

!> Ë� ôS TK !< Ë� �S TK

454

15A 9B: shutdown – writetext

like�y 7&_(5? �+!^ 4 �+!v ây)� +:2� ëI�ä� / !D2� ìý�i��. like� char, varchar, unichar,univarchar, nchar, nvarchar K�Ó datetime _ 01� wfÌ 6·� ��6 ÝÞ� 01� ÷x��.

like ìý�� �! 7&� char R varcharSÌ é�ä datetime ����¬ �Ú 01� wx��. like datetime 2/ �Ú 0124 Adaptive Server� ¾¿- !X datetime �#Z�  ³2Ó �D varchar�  ³.��. !X H� �#� 6 ·� ��6v ��zf �Zm� like R ëI/ 0124 6 ·� ��6- ÝÞ� ÷x��.

datetime ÀÖ�� �#� ¾¿ ,Ô� w/ wZm� datetime2/ ÝÞ� �� like- 012� � !x��. '- t,arrival_time _ "9:20"�ä� 2/ ci24 Adaptive Serverv� ÀÖ�- "Jan 1, 1900 9:20AM"Z�  ³2S �7 �y u? 2/ èf F.��.

where arrival_time = '9:20'

2fÌ �y u/ 0124 2/ è/ wx��.

where arrival_time like '%9:20%'

match_string7& R �! 7&� ��� 7&_� �+!� �)VO wx��. ! 15-3? �! 7& ¸¹i��.

� 15-3: �� ��

escape�! 7&� ��� �Í/ ÝÞ2� � 012� � 7&- fA.��.

escape_characterp+ 7&i��. &¯� �1? 200 h�f� "escape u 01"/ ��2�D�.

is null null 2/ ÝÞ.��.

� �� �F

% F,- 0x �d� F,�

_ 7 F,

[ ] SX^ pw([a-f]) q� F?([abcdef])Q �2� 7 F, [^] SX^ pw([^a-f]) q� F?([^abcdef])Q �2S T� 7 F,

455

where !

betweení� D5/ ^T�� ìý�i��. í� ô 2� and- 01.��. �y ¡å� í�v ��zW

where @val between x and y

�y ¡å� í�v ��zf �x��.

x and @val < y

between/ 01� ¾�� fA� { H� 2� H� 2B�o Â4 é� �¬ returnzf �x��.

and �]/ Ñ82W �]� M �+ � 8$- return.��.

� �7 /�± ÑÕ&v � �Y 01z� ¡å +í±Z� andÑÕ&v (H �v���. 2fÌ �U- 0124 Æ� ¶�- ¡� wx��.

in2 ¸¹ � 2^ +:2� 2/ �,� wx��. � kª ÑÕ&� Y �<^ _ �[+ wZW � ¸¹? Y s.�<^ B� �ã¾�§ ¡åv �x��. ( in �ã¾�- 012� $ ��� �1? Transact-SQL User's Guide- ��2�D�.)2 ¸¹/ �U ² Óx��.

value_list2 ¸¹i��. 7& 2/ 4 �+!� �Ó y@� ù 2/ �Ô.��('� 7 ��). � ¸¹?   ¸¹¬ v�.��. '- t4 �y$ lx��.

in (@a, @b, @c)

2fÌ 2 ¸¹ �= �y ¡å� l� ¸¹/ ��2�   -01� ÷x��.

@a = "'1', '2', '3'"

exists�ã¾�� �Ú 0124 �ã¾�� 8$ £� O,- UEÖ.��. &¯� �1? Transact-SQL User's Guide- ��2�D�.

subqueryselect, insert, delete ·� update 7�^ �ã¾�� where ·� havingu � w� �� 0¢ select 7i��. order by� compute u Rinto ìý�� 31zf �x��. &¯� �1? Transact-SQLUser's Guide- ��2�D�.

456

15A 9B: shutdown – writetext

any>, < ·� = R �ã¾�� �Ú 01���. � �ã¾�� ÝÞz� 2� Ð, �7� where ·� having u� 2$ +:� ¡å 8$- return.��. &¯� �1? Transact-SQL User's Guide-��2�D�.

all> ·� < R �ã¾�� �Ú 01���. � �ã¾�� ÝÞz�MN 2� Ð, �7� where ·� having u� 2$ +:24 8$- return.��. &¯� �1? Transact-SQL User's Guide- ��2�D�.

column_namekª 01z� _ �[i��. Æ�L� ,Ô� w/ ¡å ={U�V ·� � �[/ 01= _ �[/ �A.��. IDENTITYe�� w� _� ¡å ��24 Æ� _ �[ �� U�V �[/01= �A� syb_identity ìý�- fA� wx��.

join_operatorkª ÑÕ& ·� �§ ÑÕ& =* ·� *= � 2^i��. &¯��1? Transact-SQL User's Guide- ��2�D�.

logical_expressionTRUE ·� FALSE- return2� !"#i��.

or �]/ 8.2O � �] � 2^ä¬ ��4 8$- return.��.

� �7 /� ÑÕ&- � �Y 01� ¡å or ÑÕ&� +í±Z� and ÑÕ& �y ¦Õ���. 2fÌ �U- 0124 Æ� ¶�-  ¡� wx��.

�� 1

where advance * $2 > total_sales * price

�� 2 �¿ HUv 415� D52f �� �/ M èx��.

where phone not like '415%'

�� 3 H& �[� Carson, Carsen, Karsen R Karson§ �/ èx��.

where au_lname like "[CK]ars[eo]n"

457

where !

�� 4 IDENTITY _ 2� 4§ sales_east U�V� �/ èx��.

where sales_east.syb_identity = 4

�� 5

where advance < $5000 or advance is null

�� 6

where (type = "business" or type = "psychology") and advance > $5500

�� 7

where total_sales between 4095 and 12000

�� 8 statev � ¸¹� 5 � 2^§ �/ èx��.

where state in ('CA', 'IN', 'MD')

�� • where R having ÝÞ �]? d+.��. p, where u�� s¦ � (Aggregate function)v 31zf �x��. '- t4 �y u? ��.��.

having avg(price) > 20

�y u? ��2f �x��.

where avg(price) > 20

s¦ � (Aggregate function) 01 �� �1? "Transact-SQL � " K�Ó ={ '�� 282 ��� group by � having�/ ��2�D�.

• ÝÞ �]� �§$ �ã¾�v fA���. &¯� �1?Transact-SQL User's Guide- ��2�D�.

• where u� and R or �]/ �Ó 250gef 01� wx��.

• char ·� varchar ÀÖ� ��� �+!- fA2� ­®� vf wx��. { H� ­®? �+!- H 012� ­®i��. '- t, 5? �+!- 012O 7& ÀÖ�- D5`�� ÀÖ�� +, 5? �+!- · ÓÓ W? ¡å 5? �+!- H 01.��.

'I don''t understand.'

·� 4 �+!- H 01.��.

"He said, ""It's not really confusing."""

458

15A 9B: shutdown – writetext

H� ­®? §1� í�z� �+!- â�� ­®i��.Ú, 4 �+!v w� ÀÖ�� 5? �+!- â�Ó 5? �+!v w� ÀÖ�� 4 �+!- â�� i��. '- t4 �y$ lx��.

’George said, "There must be a better way."’ "Isn’t there a better way?" ’George asked, "Isn”t there a better way?"’

• ¿4 skB� o 6 7&_/ i�234 �y ò� vS �«XÒD(\)- i�.��.

• where u� _/ Y ·�   � kª� ¡å Adaptive Server� � Y ·�   - ={ _� ��� ��Z�  ³2O üÈ@�Hv ��� ÝÞ D §iE- 01� w¬¹ .��.'- t4, float !"#? int _$ kª� ¡å int�  ³���.'- t4 �y$ lx��.

where int_column = 2

int_column = 2§ �/ select.��.

• Adaptive Server� ¾�- �±¿� � where R having u� ÝÞ�]/ �v2O Ø �]� �Y� §iE R ¾� ¦� �, 01� w� ÝÞ §&(SARG)§f fA.��. ¾�� ùU�V@� �Ó 128g ÝÞ §&- ¾� �±¿ 01� wx��. 2fÌ MN ÝÞ �]� �/ �A2� � 01���.ÝÞ §& �� &¯� �1? Performance and Tuning Guide- 012�D�.

56

89 �� – delete, execute, group by � having �, insert, select, update

Uq �¨ – ¾¿ R D\ ��� ��

��� ���� – sp_helpjoins

while�� �7 ·� �7 V¹� ím Æ� �]/ �A.��. fA� �]�

�§ � � �7? ím Æ����.

�# $% "#SQL92 +£ (� >*

459

while

�� while logical_expression [plan "abstract plan"]statement

���� logical_expressionTRUE, FALSE ·� NULL/ return2� !"#i��.

plan "abstract plan"¾� �±¿ 01� Abstract Plan(AP)/ fA.��. � ¦�?Abstract Plan(AP) �� fAzW �Å ¦� ·� ,Ô ¦��v�.��. ¦�� �±¿� w� SQL 7, Ú U�V/ ܯE2� ¾�Ì fA� wx��. &¯� �1? Performanceand Tuning Guide� 30� "Creating and Using Abstract Plans"-��2�D�.

statement2^� SQL 7+ ¬ wfÌ +í±Z� begin$ end� �Ôz�SQL 7 V¹i��.

�� vÏ� $30 9Ì�4 titles U�V� MN Ê vÏ/ 7� ÌX��. KÒ¬ $30 9Ì�4 while �G� ={ 2/ ¦e 7� ÌX��. vÏ� $20- 6$2� �¸/ fA2� Ð while �G�select� �G- · ¼ Æ�`�f !D.��. Adaptive Servervreturn2� ù �� 8$v � �Gi��.

while (select avg(price) from titles) < $30begin select title_id, price from titles where price > $20 update titles set price = price * 2end

�� • while �G�� �7 Æ�? �G �,� break� continue �@/ 012O �� wx��.

• continue �@? while �Gv �D D5z¬¹ 2W continue �@�y �7? ]s���. break �@? while �G- B�2¬¹ÌX��. �G ô/ !D2� ìý� end �y ^�� �7�Æ����. break R continue �@? if UEÖ- �= BB Z�¿���.

'- t4 �y$ lx��.

while (select avg(price) from titles) < $30 begin update titles set price = price * 2

460

15� ��: shutdown – writetext

if (select max(price) from titles) > $50 break else if (select avg(price) from titles) > $30 continue print "Average price still under $30"end

select title_id, price from titles where price > $30

� ��� �� � �� $30 ��� titles ��� �� ��� �� � �� ����. ��� � �� $50� ���� break � � while !"� #$%��. continue � & �� �� $30� ��' () print *� +,-� ./0 ����.while !"� 123 45-6��(78 45 9� break � :;< 45): =�>� ?�@ AB� $30 �8C �� DE%��.

• while !" F �8� #GH () break � & �I JK !"�45L��. MK !"� NO �I: P� �� Q*� +,-R S� T �I JK !"� �E EUL��.

��! while !" M:V create table 9� create view � � +,-� Adaptive Server� � WX� YC� ZK� [7�\ ]:^_ �� 9� `: ab cd?� ����. � ���S`� � ef�� :g� hiEj k Pl��.

��

�� while mb& nop� �� qrs:3 tuL��. ;vV w/�qr mb� xy�� .l��.

�� �� – begin...end, break, continue, goto Label

�� �� ��

SQL92 Transact-SQL ��

461

writetext

writetext�� ��� text �� image �� ��� �� ��� �����

�����.

�� writetext [[database.]owner.]table_name.column_nametext_pointer [readpast] [with log] data

���� table_name.column_name����� ���� text �� image �� �� ��. �����! ��"#�$% &' ��"#�$ ��( )*+,, ��"#�$% -. ��� ���� / �0�' �12 ��()*���. owner� 34�5. 67 8�2�, database� 34�5. 67 ��"#�$ ��.

text_pointer9:"� text �� image ��"� ;<+� varbinary(16) 5 ��. => 1%?@ -� � 5( )*+A' textptr BC� 8����. text D image ��"� �! ��� �� -. EF G�)H�% ;<I) J, KL� EF G�) H�% ;<M��. N> OP� QRS� 9:"� � ��"@ BT ;<I,textptr� � 9:"� return���.

readpast� UV. lock� W> XY Z[+L� )*���. writetext UV� lock X( \]+' lock� W>^ _`) ��+) Jab� cde��.

with logf text �� image ��"� �����. � gh( 8�+'ij kl% Lm� I)Y n! op S% q. r� ��"� ��+' �sth �u� F�v w)x� � �sth �uv KL� ��"#�$ 3b�$% 0y+L� Wz ���. 2{S�. create database, sp_logdevice D ��� �� ���� |}+~o�.

datatext �� image �% � ��" ��. text ��"� ��� �%��z +, image ��"� �% ��o "0x"v @z ���. �����v C�� C &� text �� image ��"� �� ����*� _ 8�+� ����� �����% � *�� �:+~o�.

�� 1 � =>� �$� 9:"� �� ZC @val% ����. u��� writetext� "hello world" �$� �2�( @val%? v����$� ��% ����.

462

15� ��: shutdown – writetext

declare @val varbinary(16) select @val = textptr(copy) from blurbs where au_id = "409-56-7008" writetext blurbs.copy @val with log "hello world"

�� 2

declare @val varbinary(16) select @val = textptr(copy) from blurbs readpast where au_id = "409-56-7008" writetext blurbs.copy @val readpast with log "helloworld"

��� • writetext� ��� � �� �� � ��� text � image ���� �� � 120KB���.

• ����� writetext� ����� �� � !"���. #�$�% � �% &'( �� ) ���*�+ , �� text -�image ���� �� $ ./��. writetext0 ����� �� � 12 34� 567� 8& 9: ;<=� sp_dboption> 567? select into/bulkcopy/pllsort0 true� @AB��.

• writetext� �C� D+E text ���0 "��B��. � "��� �C� �0 FGH IJB��.

• insert -� update <K� writetext !"> L$ ./��.

• writetext+� text -� image M> �<N� OP� � QR�� STB��. OP� � QR�� CU7V� 7WXtext M+ YZ9 update0 56& [9��� �\] ^' _�` NULL _� �ab B��.

textid � x M> �c textnull d�e� �f x� NULL> g67� text MR �� � update� hi text _> NULL� @A7ftext M+ OP� � QR�0 �%B��.

update textnullset x = null

[9� NULL� insert jk+E al � QR�V (ma$$ ./��.

insert textnull values (2,null)

-� n9� NULL� insert+EV � QR�� Go (ma$$ ./��.

insert textnull (textid)values (2)

463

writetext

• text �� insert � update� ���� ���.

• � text � image ���� writetext� ��� � ����.

• dbcc fix_text� ��� �� �� �� �� �� !" #$%&�� �' text (�� writetext� ��)*+ ), � -.� /01 23)+ � 4�5�� dbcc fix_text� ��)67 89)� �: ;981 3<=��.

• ���8 >? @A BC�� writetext� dump database1 �DE8� FG� H IJK ��=��.

• Client-Library L�M dbwritetextN dbmoretext� writetextG� OPQ R S�M ;BJ� ��$��. � L�� text T�U� V+ 2GBW8 X� � Y���.

readpast �� ��

• readpast Z[? data-only locked 4�5�\ ��=��. readpastZ[� allpages-locked 4�5� 8]^ ���� _9=��.

• `[� isolation level� 3�, readpast Z[? �: �� _9=��.

• `[� ab[ isolation level� 0�, readpast� ��)cwritetext -.? �+ ;98� d9)8 >���. `[ isolationlevel 0�� �:� -.? ef �� gh�8 >� locki�lock�8 >? ��� 8]j ef �% �]$��.

��

�� writetext k�? @A � 4�5 lm"�K YiQ 4�5 lm"� � k�% �n ��"�K o6� � Y���.

�� – readtext

��� �� – text � image T�U mp

�� �� ��

SQL92 Transact-SQL ��

464

��

��*(q�)

select 172@(at >)øù �, 119"é '( �� 187p"�Ì Óx'( 262

::=(BNF � G)SQL F xi

()(=>)SQL F x

!(rs�)Qï Õ�S w§ ��, 340

[ ](c=>)SQL F xi

=()>)'( O� 378� N| �� '! 377

" "(�t�)�u SX 458

?(àK�);< F,+ 352

%(vw£ >)Qï Õ�S �u 342Qï Õ�S w§ ��, 340

\(gxö�)F,� Â� 459

%nn!(w§ ��, �¯) 340{}(Z=>)

SQL F xi,(fg)

SQL F xi#(�V� >), T� ��A ¯q, y¸8 126

��"0x"øù 119³÷£ 71writetext �� D image ��� 462

16�("0x" y¸8 71

�-�(alias)��A d> �� �� 380

-�(alias), �compute � Ø+ 58group by �µ zS 283, 285

-' � �: F,� 300ÌÍ ² 337

-d ³¹�� {> 203, 206, 211�z, ,Ý &ô\�£ 48H`

ÌÍ �� pö�Z£­ 163

IDENTITY � 3023 ¼^��� �� '* 459X� ²R w: 336–337where � 459

\� E<*�¯ X� ² 336

x|�(ß�) ��A 161, 162Ð& Ú:�� Ú: 270grant 270–282grant all 279

Ð& `�,. ������ Ð& `�, ��

465

��

Ð& ��, ������6Í p"�Ì 107, 109Óx'( 100

Ð& O� }(OAM) ´�Sdbcc indexalloc 181dbcc ��A Ë�² 182

Þ* , ��. dbcc(������ �� Þ* ) ��

Þ�

Qï Õ�S ~�£ 339Þ� ��

group by � having ¾ 284, 287select 383where � 453–459

¿V

F� ÂG 286Ö/ ��

»² ¿V set 192, 267order by D X� 333–339

¿?

��A �� 289��� . with override �� ��

!" ��lï ³¹�� 208hz ýp ³¹�� 315DLL D ÎÍ 6Í p"�Ì 101

�K

create plan4 *+2Ñ t� 98create procedure 101set showplan on 410set sort_resources on 411

�X � �ÌÍ ² 337

��

������ ÌÍ �� 85, 91, 130"� r�Z£Q² *+ 248;4 248*+2S T� "� Þ� 248� ������ 668�9£(extent) 90, 138�Ò� ´�S 21, 85alter table...lockQ ÃÁ 40clustered �Ò� 85, 91, 130

466

clustered �Ò� D max_rows_per_page 22max_rows_per_page 22, 131

�� � ��create index 94create table 153

��, F,update 440

�� Å*+reorg reclaim_space 355

�� O�"� ³¹�� 69��A 138, 178´�S 182dbcc ��H" Þ* 178–181

�� O� ��

�ü

F, ��� �� 300, 440=>()

SQL F xEF

create trigger 158set parseonlyR *+: Þ* 407

EF � G, Transact-SQL xE<, à���AV �Ò� r�Z£ 90, 143

E� Óx'( 4, 353E�

² ��clustered D nonclustered �Ò� 83

Ú:

Ð& 276������ `�,Q 90 O� 271�� 275–277£Ü t� 166, 278, 367O� 271create schema" t� 122–123grant 270–282'public' �� 275–277revoke �� 361–368setuserR *+: '! 425

Ú: ��. Ú: ��

øX, X� ²9 N� 336–337øù

³÷£ w� 73

��

¹�� 121*+, t� �� SX 119*+, X9 �N 227�" t� 118–122� X9 �� 121insert 300

��

��A À 282grant 281'public' �� ��

revoke 367��­

�Z £Ü ݦ 158Ý : ��9 p"�Ì 99, 225, 262��A À 286

 

£Ü D  IS T# ¦¶ 162select into 392text q� image ��� 461writetext �� 462

Ï ��A. ��A ��

>

SQL F x

���

�� �¯ 404�� �¯, waitfor �� 452

�� ;<² 405

6�� Þ� 337��3(deadlock) 338oÄ " ´�S 338

6�� �Ò� 256�� �Ò� ², SX 166�� X�(desc ���) 3856��(desc ���) 3336Í p"�Ì�� �N 225��­ 99, 262;Ñ^ Ú: 271

�N 99, 225–226t� 98–110MÀ 261�� '! 105�� SX 99Z� 105, 266_c ÌÍ Í` 105�`^ Ú: 362ID {> 408parseonly� ]. *+2S TK 407procid �� 408return d� 107–108return d� �� 261, 266, 357set �� 398

6Í p"�Ì £Ü. £Ü ��

ß �®¯when...then 45, 50

ß� ³¹�� ��³�ô lï 0N 216³�ô lïõ 207³�ô Ålïõ 214� ������ 65

ß� ��. dbcc(������ �� Þ* )ß� û (statistics io) 411ß� �®¯EF 44if...else 295when...then 329

�(x|�) ��A 161, 162

��Z ¹�£ F, F?'! 180fix_text ¶�þ�� 180, 185readtext 352readtext using characters 352writetext 464

�Z ��A ٠443٠��

delete 172, 197�Z £Ü ݦ 158

467

��

c/`F, E<X� ² 336compute 60group by 293SQL xii

c=> [ ]SQL F xi

c=>. c=> [ ] ��

cF, *+, úX 336@ ´�S¶��£ 48–49

ýp, ��������� 236, 244–245I£�ô �& 239ýp ³¹�� 234, 240ýp �£� 235Ý� 239"� Z 69, 309–317iª 236Õ�S cd 237AB '! 244AB �� 235, 243AB ~- 244–245A  ô 234*+^ �� 253� ������ 239��sõ 239–240��ê ������ 240Â� 244, 258hz 241T�3 2405 ­/~- 236��p IH 236��p �� 234��p < 235��p +� 235� �� 236, 241Backup Server 241Backup Server, hz 234master ������ 240

ýp ³¹��ýp, ������ 234

468

ýp, £¤¥� "� 248������ ³¹�� 233�� SX 234, 248, 255–256ÃÁ: ( 315

ýp ³¹�� ��

ýp �£������� ýp 235£¤¥� ýp 249

ýp, £¤¥� "�Ú: FN 252I£�ô �& 255ýp �£� 249ýp ~- 250"� Z 317–326iª 250Õ�S cd 251AB �� 249, 257AB 5 ­ 258–259AB ~- 258–259;4: "� �� �� 254–255*+I� �� 253��sõ 255hz 256, 258T�3 255��p IH 250��p < 250��p +� 249��p 5 ­ 250� �� 250, 256–257Backup Server, hz 256

��3(deadlock)6�� � 338

��� ȿ� 300}G 145N� �� 144�� integrity constraint ��

dbcc Þ* 177��� *�. ��ê ��A ��

��� (Xupdate 434writetextR *+: text D image 461

��� ��

��

"é '( 187�9 >*� D ³÷£ 72»² ¿V set 268group by D having �Q² ;�? 285union ÂG ¼^ 433

��� �� '*� X9 141

������

ýp 233–246������ ýp ¶�þ�� 314, 324³÷£ ô 67"� Z 309–317ü¶ 233–246q�9 "� r�Z£" t� 254ñE Z 309–317�N 221t� 65t� Ú: 71²Ä ( 68ab 450ád^ ;< �N D ñE 180op��, '! 10 � Z7 342ô �- 7checkalloc ��(dbcc) 178checkdb ��(dbcc) 178checkstorage ��(dbcc) 178, 179use �� 450

������ Ð&Ú: 276Ù t� � Ú: 174Ù >Ö � Ú: 174��, create procedure 105£Ü t� � Ú: 167£Ü MÀ � Ú: 167p"�Ì t� � Ú: 110p"�Ì MÀ � Ú: 110select_list 346–347, 377–378tempdbQ ~- 142

������ Ð& `�,������ `�, 270

������ ýp ��

������ ³¹��q�" £¤¥� "� 209, 215� ������ 65alter database 7

������ t� Ái9 �� 68������ `�,������ Ð& `�, 270;Ñ^ Ú: 271setuser *+ 275

������ `�, ��

������ � Z7 342�Õ� øù 300w� 300create rule �� 118

�Õ� q� È¿� øù w� 300� 8 �k Õ�S "N 340Ý98

charactersQ c: chars, readtext 351outV output# Ý98 101output9 Ý98� out 262tran, transaction D work, commit �� 51tran, transaction, work, rollback �� 369

Ý� ýp 239, 255³¹��

³�ô lïõ 207–210g�� 10{> SX 203, 211Ë� 209

³¹�� lï 0N. ³�ô lïõ ��

³¹�� oò£¤¥� "� ýp 251, 253

³¹�� ��ýp ³¹�� 234, 248³�ô lï 0N 216³�ô lïõ 207³�ô Ålïõ 214à�, disk reinit 211hz ýp ³¹�� 315

³¹�� 5 ­. 5 ­ ��

³¹�� pö�Z£ ( 68³Ä� Sh£Ü 165set showplan on 410set sort_resources on 411

469

��

set statistics io on 411³�ô ³¹��lï 0N 216–219lïõ 207–210~- 203–207

³�ô lïõ 207–210������ ýp 245������ "� 316lï 0N, 216–219Å�¦ 214–216£¤¥� "� ýp 259£¤¥� "� "� 326waitfor mirrorexit 451

³�ô lïõ9 ¼¬�­ 216–219³�ô �£�ï 204, 212³÷£ 300øù 73, 121�N 222t� 71–74� 18X9 D create default 71–73IDENTITY � 35

³÷£3

�- SXIS T# !ã ��� �� 100³÷£ úX6Í p"�Ì9 Óx'( 100Á ² 418set �� �� 417

�t� ¸ { *+F,� 458

�þ�A

ýp AB 243, 316, 325goto þ�A 269

"� ³¹���� O� 69, 185�N 240£¤¥� "� ��

"� ³¹�� ��

"� r�Z£ 68, 247

470

,& ³¹��Q åK 179dbcc checktable Ë�² 179

"��

¼¬�­ 428hz "�� 425char_convert úX 403

"�, ������ 309–317I£�ô �& 315³�ô lïõ 316Õ�S cd 312, 325ü¶ ²Ä 316AB �� 310A  ô 310*+ N: 314, 324� ������ 69�£��p "� 311¶��£ zS 314hz 315��p IH 311��p < 311� ��, |  311 �� d> � Sh [ Y 313, 321ÃÁ: ô 314!@, |  312

"�, £¤¥� "� 317–326ýp ³¹�� 318³�ô lïõ 326Õ�S cd 320AB �� 318�£��p "� 318��p IH 319��p < 319� ��, |  319!@, |  320point-in-time ñE 320until_time 320

"�, £¤¥� "� ��

"é '(*+, X9 Qï Õ�S 346­É Õ�S 340declare(�� D ��� ��) 186raiserror 346

��

"é '( X9 186–188�(role)Ú: 2816Í p"�Ì Ú: 280;Ñ 280d> ��� 13t�(*+, X9) 116�> �N 13�> ~- 13set role4 *+: úX D 0N 409

�(role) �� 15�(role), *+, X9úX D 0N 409N: 118�` 363

�(role), ��ê�` 363

�ü(rollback) p"r�Óx'( 3 266

¨p

£Ü Âk È: 165break 44continue 64goto þ�A 270while 44, 459

g�� ³¹�� 10Óx'(, p"�Ì��� �� 100³÷£ 100�� SX 100N� }G 262, 265£¤¥�9 ;- Ç� 266execute 262

Ó�

system D default r�Z£ 11Õ·

�� ��

deallocate cursor" 0N 186Õ· 6(in-memory) } 10

Õ�S

*+, X9 �k 339–342�8 úX 406£Ü 161, 231­É 339–342revoke 366

��

² E< 277, 366create function 79rowcount pw 410statistics io 411statistics time XË 411Transact-SQL, Á� ��A 1–5

�� Ú: 275–277Ð& Ú:; Ú:��

(� 275�` 362grant O� 270–282grant all 279

�� ² 277, 366�� MÀ SÂ. waitfor �� ��

� ³÷£ 222�� 1–5*+, �� E�h 281Qï return 3 360"�^ return d� �� 3 360X� ² ab e| D �V 336

È¿�. dbcc(������ �� Þ* ); �� È¿� ��

FG E�, {> Ó�� w§ ��, 340F,

"0x" 119char_convert" '*IS TK 403

F,�

¼8 JK 300print Õ�S 340truncation 300, 412

F, F?�Z ¹�£, '! 180'! µ fix_text ¶�þ�� 180����£� ²Ä � '* 403fix_text '! µ ¶�þ�� 180

471

��

set char_convert 346F, F?9 �� X� ²

order by 336FÍ ² D {>- Ó�� w§ ��, 340à� ������ ��. dbcc(������

�� Þ* ) ��

à� û (statistics io) 411lïõ ¦Ý ZS ³�ô lïõ ��

¹�£

ô ��

À� 27, 138¹�� 0Nøù 227³÷£ 72, 222

¹��

øù 121³÷£ 72¹�� 0N 223

�ñ MÀ. while ¨p ��

�ñ û isolation level 387�§ p"r�

create default 72execute 261, 265return d� �� 357–360set �� 419

ü¶

ýp, ������³�ô lïõ 208, 218³�ô Ålïõ 214�<. ýp, £¤¥� "� ��

master ������ 10{>

-d ³¹�� 203, 206, 211Ý : �� �� p"�Ì 99, 225, 262ab |  384Qï return 3(²Ä) 359Á �� 404w§ ��,(%nn!) 340procid úX 408statistics io 411

472

�� F�group by 286

'!

������ 7������ ô 7–12�(role) 12Ù X9 172*+, X9 �(role) 12*+, X9 �(role)9 �> 16¶��£ ��

��A 16–42��A N� �� 16locking }¯ 16, 25

'! MÀ �`. rollback �� ��

'!, �`. rollback �� ��

'(

"é 186–188ab | 9 ;" O� 378print Õ�S 340return 3 265update F 437

'*

� 141�, 340like ���� ]. *+2� �� 455NULL 3 D ,Ý 141where � D ��� �� 459

1� X�select D parallel 381

Ë�²

dbcc �� 182sp_who 306

Ë[

Ú: ��

�� D Ð& Ú: 275Ù 170

Ë> ��ê6Í p"�Ì 110�(role), ��, *+,9 �� 281�� D Ð& Ú: 275*+, X9 �(role) 117

ñE

ñE ��

��

ád^ master ������ 210, 211�� D checkpoint 48£¤¥� "� 6 SX^ �� 322dump transaction 255load database- J� ������ 309–317

ñ*

create databaseR *+: ������ 68–70

insert...selectR *+: À 298model ������ 68select intoR *+: ��A ñ* 392

ñ? �Ò� 83, 96AB ��, ������ ýp 243;< F,, û 352;Ñ

£Ü t� Ú: 166, 278< 269<, à�£¤¥� "� ³¹�� 209, 215

<G £¤¥� p"r�(DTP) 180Ù

Ú: 271, 276 Ï ��A ¹� 172������ Ð&; �Z ��A Ù ��

��� Æ. 303�N 231t� 167–175¶��£ N: 443�� '! 171�`^ Ú: 362check option 442–443create schema" t� 122–123from �Q² Ø+ 380readtext 352update 172update 442–443with check option 172, 303–304

Aef p"r� 306¼^ ÂG,

where � 454: F,� (" ") q� (' ')�ü : � 300¶��£ 439

: F,� Ö/ 342: ´�SQ c: &� ´�S9 ¼( 16

�*+,

c½ *+(setuser) 275��ê p"�Ì Ú: 277guset Ú: 281

*+, Ú:. ������ `�, �� 270*+, ��. �� �� 367*+, c½ *+. setuser �� ��

*+, úX, cF, X� ² 336*+, Qï 344*+, X9 þ�A" È�� < 269*+, X9 �(role)t� 116úX D 0N 409��ê p"�Ì 280�> ~- 13�� 15�` 363

*+, X9 Õ�S �k 339–342*+, X9 £¤¥�£¤¥� ��

begin transaction 43commitH" ©ª 51

*+, X9 p"�Ìt� 98–110MÀ 261

*+, ��

*+, ID. -�(Alias), "��, *+,��

*+2S T� £¤¥� "� �� 248*�¯ X� ² 336�N

øù 227��­^ p"�Ì 99������ 221–222³÷£ 72, 222�(role)9 �> 13Ù 231*+, X9 �(role) 227�N ��

473

��

d> ��� ��9 �(role) 13ád^ ������ 180ád^ �Ò� 182�Ò� 224��A 228–230��A N� �� 16��A À 194–200��A9 À 229£Ü 162, 230£Ü- J� ��A 162p"�Ì 225–226dbcc dbrepair ������ 180truncate table ��4 *+2Ñ ��A9 À 429unlocked À 194

d(

return Óx'( 265d�

6Í p"�Ì MÀ 266d> �� ����A �� 380

d> ��� �(role) 13� ������ w§ 65t�

øù 118–122������ 65–71³÷£ 71–74Ù 167–175*+, X9 �(role) 116��g 122–123�Ò� 82–97��A 125–157, 378��A, ID � 153£Ü 157–167, 278, 367ÎÍ 6Í p"�Ì 98–110

²Ä

������ +� 68p"r�(²Ä ¦¶); hz ²Ä ��

²Ä �¦g�� ³¹��9 ³�ô lïõ 209g�� ³¹��9 ³�ô Ålïõ 215

²Ä p"r� ID {>. p"r�(²Ä ¦¶) ��

²�¾order by 335

474

union zS 433²�¾ ��

a�

"é '( 186Óx'( 100

ab

lock 0N^ À 395ab |  377–378

order by 384union F 432

úX

ID �z 153��

£Ü 162dump database Z9 writetext 464select into 393sort_resources D �7 411showplan D �7 410

r�Z£

Ð& �§ 88������ ³¹�� 68�"V ³¹��" Ó� 11�� 22, 131, 134��� SX^ Y, 68�Ò� t� 22, 88, 90, 131��AV �Ò� E< 90, 143��A locking }¯ '! 40clustered �Ò� 90dbcc checktable Ë�² 179dbcc indexalloc Ë�² 181

`F,, X� ² 336`¼, p"r� 88`�Ú

Ú: 270øù 1216Í p"�Ì 110�� D Ð& Ú: 275Ù 175£Ü 167

`�Ú ��

`�,. ������ Ð& `�, ��

��(²Ä)��� �� ���� �� 69

��

dump transactionV dump database ¼^ 255execute 265sorted_dataR *+: create index 87truncate tableV delete ¼^ 429writetext� dbwritetext D dbmoretext ¼^

464��

hz ��A 76ád^ ������ ñE 180ád^ ������, �N D ñE 180ád^ �Ò� reindex ��, dbcc ��

(�@@nestlevel 107Ú: O� 275Z� £Ü 165Z� p"�Ì 107Z�^ p"�Ì 266

²

�� �� 293�� ;< 4056�� 385� | V Æ. ��� 298�(�X D -' �) 337�Ò� t� 90,- 432

² order by � 333Y,([)6Í p"�Ì Óx'( 105ß� û (statistics io) 411�� £Ü 161������� ��A 138³¹�� pö�Z£ 68à� û (statistics io) 411�\ %���� 7� 87*+, X9 �(role) 118²Ä- �O ( J� ������ 68�j(statistics io) 411¶��£ 165��� SX^ r�Z£ 68�Ò� �9 � 89�, D w§ ��, 341�,, where � 459Z� (� 107

¾Q² Ø+I� ��A 380£Ü (�, £Ü 165p"�Ì9 Óx'( 187À� ¹�£ 27, 138Ø+I� and D or �� 458®Å ýp q� "� 241, 256, 315, 325�¯ F,�9 w§ ��, 341clustered �Ò� 83having � Þ� �, 284nonclustered �Ò� 83, 89return^ ~�£9 ¹�£ 352

��� F�group by 285

�j

»² 192�((statistics io) 411

��g 122–123Ú: 123

 �

£Ü t� Ú: 367�� �zMÀ !V ��(statistics time) 411,Ý &ô\�£ 48��¡ ��

£Ü MÀ 162reorg 356waitfor 451

�� 3set identity_insert 406

��ê ß� ��. ß� ³¹�� �� ��

��ê ������ýp 240

��ê �(role)6Í p"�Ì 280�` 363

��ê Õ�SQï Õ�S, Õ�S��

�8 úX 406��ê Õ�S, �8 úX 406��ê ��Aøù XË 119³÷£ X9 72�¢^ O� Qï (X 181, 183

475

��

ÅEð 181, 183��A 125£Ü 161dbcc checkcatalog 178drop tableQ 90 �� £K 228drop viewQ 90 �� £K 231lock table zS 328

��ê p"�Ì*+, X9 �N 225–226create procedure 98–110create procedure �� �� ; �� ���� ��

��ê p"�Ì ��

��ê ¬Ý¾ è �� úX 398–425shutdown 427

¯q,select 391

*+, X9 p"�Ì 261�� SX 451p"�Ì 261ÎÍ 6Í p"�Ì 261Transact-SQL �� 261

MÀ SÂ(waitfor) 451MÀ SÂ. waitfor �� ��

â�� (�, Qï*+, X9 Õ�S 348

â�� (�, Qï ��

� (���

� ¦¶text �� image   461

��>

�(role) 12�(role)Q �> ~- 13�(role)Q² �N 13*+, X9 �(role) 116, 409*+, X9 �(role) '! 16*+, X9 �(role)Q ~- 15*+, X9 �(role)Q² �N 15

476

)ð^ ü¶�"� 310, 318¦� 234, 248

)ð^ ü¶ �"� 310, 318)ð^ ü¶ ¦� 234, 248är�

ANSI ��p N: *e 258är�, Ð&. Ú: �� 270äw£ E<

compute 60group by 294

�8

charactersQ c: chars, readtext 351exec� execute9 �8 261output9 �8� out 262outV output# Ý98 101transactionQ c: tran, rollback �� 369

�8, ^&E� D '* 340��ê Õ�S 406Á ² 418

¶��£

"@" ´�S 48–49Ù9 ��� 172£Ü MÀ 166ignore_dup_key 87lockIS T# À 434Primary � 159writetext 461

¶��£ -�: »² 192Qï

��� �� '* 127{> 345Qï Õ�S 344O� 178, 181, 183return d� �� 3 359

Qï Õ�S12207 327, 328F, '* 403*+, X9 342, 344–349

Qï èF, F? '* 403£Ü 165

��

dbcc 185Ñï � �Ò�. ñ? �Ò� ��

gxö�(\)F,� Â� 459

Â� s, F,� 459Âk '!(£Ü) 160Âk £¤¥� ·�

commit 52delete 198fetch 268insert 301open 333update 439

-' � D X� ² 337Ú: 271øù 300øùV X99 �� 121³÷£ 71–73, 300|  D insert 298Ù 168�Ò� t� 82–97�`^ Ú: 362��A� 27, 138��A� _c ( 27, 138��AQ ~- 16check N� ��V X99 �� 152create index ��Q² Ø+I� ( 89group by 283insert ��H" ��� ~- 299NULL 3V ³÷£ 73, 121NULL 3 D check N� �� 152order by 384union 432

� ��-�(alias) 346, 377��­ 283, 285Ù 168union ¿V set 433

� N| �� '!4 w: as ��� 377�9 (ÙQ² 171��A� 27, 138

order by � 335��4 £� p"r�

waitfor errorexit 452"�^ return d� �� 3 359"0 Ë�² dbcc tablealloc 181, 183oò, Ó&ñE ��

,Ý failover 217disk remirror 215

o�� �Ò� 25o�� �Ò� ², SX 16o�� X�, asc ��� 385o��, asc ��� 333oÄ " Qï

set arithabort 401oÄ!�

£Ü 162op�� ������ D alter database �� 10op�� ´�SR ¤��H" \N MÀ 239op� w§, readtext �� 350�g�Ì

�� ab 412Á� 3

computeQ 9: t� 57Á �� 3�� D {> 404

ãaÚ

*+, X9 return 3 360ãa wøù ¹�� 121² E< �� 277, 366

hz ²Ä 391N� �� 20, 23

hz p"�Ì, X9 78hz p"�Ì >Ö 391

execute 266rollback 370

hö ID, �� �¦(setuser ��) 425w§ ��,

print �S 340��

�� X� 293Óx'(, create procedure 100Ù 231

477

��

r�Z£ 22, 88, 131, 134�, Ù 168��A -�(alias) 380setuser 425

�� '!Ð& `�,9 ½h 2756Í p"�Ì 105Ù 171£Ü 162

�� SX6Í p"�Ì 105������ ³¹�� 203Ù 168Ù9 � 168�Ò� 83T� ��A 142»² 189��A 126£Ü 157� 203

��

��ê "�R �� ³¹��" 206clustered �Ò�" ��A 90, 143

�� ��� ��"0x" y¸8 71, 119

�� ÂG, union 4328�9£(extent) 90

create table 138dbcc indexalloc �Ò� Ë�² 181dbcc ��A Ë�² 182

�Ò�

Ð& O� } 1816�� 25|  224È¿� Þ*(dbcc) 182ñ? 96Ù 90�N 224t� 82–97² SX 16o�� 25�� 83

478

�� SX 83�� 89� 3 448´�S O� Þ* 181Ø+I� Y, 89alter table" X� ² SX 30create index" X� ² SX 91create table" X� ² SX 144dbcc indexalloc 181max_rows_per_page 22, 131nonclustered 83truncate table 429update index statistics 447update statistics 89, 447

�Ò� �( 89² SX 91² SX4 w: asc �� 91² SX4 w: desc �� 91_c ¹�£ ( 89

�Ò� ´�Sp þo 21, 83, 85, 130fillfactor �V 21, 85, 130

�Ò�9 p þoclustered �Ò� 21, 83, 85, 130

�� ��

�,

ß �®¯ ��

{> Ó�� w§ ��,, print �� 340, 341*+, X9 Qï Õ�S 346where �, Ø+I� ( 459

�� Þ*. dbcc(������ �� Þ* )��

Ï8 F, F?�k Õ�S "N 340

û �+ »² 192T�3

������ ýp 240£¤¥� "� ýp 255

T� ��A¯q, y¸8(#) 126�� SX 142�Ò� 89

��

create procedure 109create table 126, 142lock table zS 328

./Ö/³¹��, ³�ô lïõ 208MN9 �& ¼+ ��(statistics io) 411prefetch D delete 195prefetch D select 381prefetch D update 435

�,Ý ¦¶��� �� '* 141&ô\�£ 48£Ü 157

¦¶ r� set �� 398–425ÅEð

��ê ��A 181, 183�Ò� 182,Ý, nonclustered �Ò� 90text� image ��� 181

Å¥, N: 165Ålïõ. ³�ô lïõ ��

Åt�

�Ò� 182��A 228p"�Ì 108text� image ��� 181

Å�¦, ²Äcreate databaseR *+2 � 67dataserver �� *+ 209, 215disk refit *+ µ 210

Å5 ­, disk reinit 211–214Ŧ�

6Í p"�Ì 105create procedure with recompile �� 101, 105execute with recompile �� 263

ÌÍ �� pö�Z£­, H` 16�&

compute 57X� ݦ(order by)

X� �K 411X� ²6�� 333'! µ �Ò� ÅEð 182ab e| D �V 335² ��

o�� 333�� �� 293alter table" �� SX 30create index �� SX 91create table" �� SX 144group by D having 293order by 336

X� ² ��

XË Õ�S(²Ä). Qï Õ�S 344XË(²Ä)�� *+ 96~�£ 109�� p"�Ì 102

N|, � 283Ù 168

N�

X� ² N� 336–337N� ��^� ������ 150, 229t�^ �Ò� D max_rows_per_page 22Qï Õ�S 146��A '! 16��A �N 16��A ~- 16create table 144unique 146

N� �� Þ*� X9 �� 152insert 300

��

�g�Ì- ��2� ��A ( 412�Ò� 89

�? ². X� ² ��

©ª

È��, return �� 357–360waitfor �� 451

©� ��, ������ Ð&

479

��

sp_depends ��ê p"�Ì 142Zñ

���- å� ��A 393� ������R w: �� 69

Zñ À�Ò� 83, 87

Zñ^ Àunion ��H" �N 430

ZS

²Ä 427p"�Ì. return �� ��

Z�

6Í p"�Ì 105, 266(� 107£Ü 165£Ü (� 165begin...end A  42if...else �� 297while ¨p, break 44while ¨p 461

Z�^ select F select �� 375í� ©ª 427�< ü¶. ýp, £¤¥� "� ��

§�� $ª 179F� ]((Aggregate function)ü� F�, group by 286��� F� 285group by � 283, 285having � 284, 285

F�- å� �®¯, ��­ 283

¨o, *+,. Qï ��

�� È¿�£Ü 157–167

�� XËTransact-SQL �� 1–5

�� integrity constraint 16, 148, 239^� ������ 150, 229create table 144

��, Ð&. ©� ��, ������ Ð& ��

©ÇË ·�

480

select 387&ã , ����ü 300

ª {« � Óx'(. ���

&ô\�£ p"r� 48–49ñE

5 ­

³�ô �� 203–207disk reinit 205, 211–214

¬ ?�order by 336

_c � ( 27, 138_c À ô 27, 138~-

Ð&R tempdb" 143������Q ~-I� �� 7–12�(role) 117�(role)9 �> 13lï ³¹�� 207–210*+, X9 �(role) 117d> ���� *+, X9 �(role) 13��A q� ÙQ À ~- 297–305��A N� �� 16��AQ � ~- 16sysusermessagesQ Õ�S 342

~X ��reindex ��, dbcc ��

Ö/

: F,� 342dbcc 185

�`

�K �X4 *+: ¾ 408G­ Qï- J� £¤¥� 401Zñ ¶��£ q� Æ. 87£Ü 371£Ü t� Ú: 166, 278, 367rollback ����

rowcountQ²9 �� 410with overrideR *+2Ñ �(role) Ú: �`

226

��

�®V�, while ¨p. while ¨p ��

»²

¯ 49��� �� >*� 268pw 190a� 188–194�j 192¶��£ -� 192¶��£ -�: »²Q� union zS 431� 332û �+ 192´§ 267–269O� 0N 186O"° FN 193À �N 199À ¶��£ 441compute � 58grant 277group by 285order by 335select 392

»² ¿V set 192��� �� 268return À 267

»² ¯ 49»² pw 190»² � 332»² ´§ 267–269»² O� 0N 186¦�

��(statistics time) 411MÀ2S TK(noexec) 407�� D ��A ®V£ 412exec with recompile 263

¾

EF Þ*(set parseonly) 407Ù 171MÀ úX 398–425MÀ2S T� ¦� 407��� |  407£Ü MÀ 160

group by D having JK/åK 286union 430–434

¾ �Kset showplan on 410

¾ <±set noexec 407set statistics io 411set statistics time 411

¾ èset �� 398

ô

������ ÎÍ 8"� ³¹�� 206ñ? �Ò� 84� ������ 66Ŧ� ^ 6Í p"�Ì 1055 ­^ ������ ³¹�� 206¦� ^ 6Í p"�Ì 105¦� ^ 6Í p"�Ì9 "d§ 105��A 138��A9 � 27, 138£¤¥� "� ³¹�� 69, 206À 27, 138readtext ��� 350, 352selectQ 90 returnI� text ��� 412set textsize ]( 412writetextR *+0 returnO image ��� 463writetextR *+0 returnO text ��� 463

ô N:������� ��A 138��AQ Ø+I� � 138order by ¿V 335print �� 341

����£

F, F? '* 403� 3 448� �

alter table �N 37�, ��. �� � ��

�, ��A 146common � 129

481

��

���¡

�� �z ��

,Ý &ô\�£ 48�T�²p, £¤¥� "� ýp9 ² 315��A

Ð& O� } 182Ú: 2715� , group by D having � 282–2947 �� 286���- å� ��A 393'! 16–42�N 228–230� ��A t� 125–157�" iæ 378�Ò� w§ 224, 448��Q² ��I� ( 412Zñ t� 393�`^ Ú: 362p � 74clustered �Ò�" �� 90, 143create schema" t� 122–123dbcc checkdb 178external 114from �Q² Ø+ 380ID �" t� 153partition 24Transact-SQL ÎÍ �V D ¾ 287unpartition 24

��A ´�Sdbcc tablealloc O� 182

��A� � 27, 138��A4 ��H" 5� group by � ��

��p þ�Aload databaseQ c: listonly �� 311load transactionQ c: listonly �� 319

~�£ \�� 3readtext 350

«�

·9, "� 423�Ò�IS T# �Q c0 t� 448delete statisticsR *+2Ñ ��A D � �N 201

482

£¤¥�

Óx'( 266�§ p"r� 369Âk 52�¼ 339�` rollback �� ��

begin 43commitH" ©ª 51dump transaction �� 246–260fetch 268isolation level 413save transaction 372–373update �ñ 439

£¤¥� "��� ÎÍ 11��, ·��õ 255ýp 247"� Z 317–326ü¶ 233q�9 ³¹��Q 206, 209, 215q�9 ³¹��Q Ë� 252q�9 r�Z£Q �§ 254*+2S T� �� 248�N 240�N^ À 198dump database 233dump transaction �� 247master ������ 240, 253syslogs ��A trunc log on chkpt 252writetext with log 462

£¤¥� "� ��

£¤¥� isolation levelreadpast �� 397

£Ü

6Í p"�Ì 165�ü(rollback) 371�N 230t� 157–167, 278, 367�� �z 162��ê ��A 161�� '! 162,Ý Å¥ 166

��

,Ý Å¥ *+ 166Å¥ 166Z� 165–166Z� D rollback trigger 371delete 198image � 161insert 300@@nestlevel 165parseonly� ]. *+2S TK 407rollback 163, 370@@rowcount 163set �� 398text � 161truncate table �� 429update 437

£Ü ��� 161, 231£Ü ��A 163

��V� >(#) T� ��A �� y¸8 126�

lï ³¹�� 208��A 125

� �������� ýp 241£¤¥� "� ýp 250, 319DLL 101listonly" ������ ýp |  iæ

311listonlyR *+2Ñ £¤¥� "� |  iæ

319´�S

: ´�SQ c: &� ´�S9 ¼( 16´�S <O 22, 86, 131´�S (t�(statistics io) 4118�9£(extent) 6 90, 138statistics io 411

´�S, ����Z ¹�£ F, 1808�9£(extent) 91, 1388�9£(extent) D dbcc tablealloc 182

�Ò� ´�S 82dbcc indexalloc�  : 8�9£(extent) 181statistics io 411

´�S, oÄ "6�� Þ� 338

´�S, �Ò�truncate table 429

´�S, N8«� ¶��£ 446

´�S, OAM(Ð& O� })dbcc ��A Ë�² 182dbcc indexalloc Ë�² 181

,- ² 432\��

text q� image � 350\��, ³¹��. r�Z£��

\]^ ��, group by ¾ 287� G

EF ��

�� ú�²Q *+ xTransact-SQL EF x

��

��9 ��4 £� ÀQ c: úX 406XË N� p"�Ì 102create procedure F ~�£ 109

��, *+, X9. w§ ��, ��

�®¯

��­ 285Á� 3 58,- ² 432insert 298

pö�Z£­, H` 16p"r� ß� ��. ß� ³¹�� �� ��

p"r� �ücheckpoint 48

p"r�(²Ä ¦¶)�N 305–307²Ä ��

�� £K, waitfor errorexit 452ID {> 306sp_who Ë�² 306

p"�Ì �� 225, 262p"�Ì. 6Í p"�Ì 98p"�ÌQ² 5- . return �� ��

483

��

p"�Ì �K, create procedure 101p � ��Ahz ��AQ Ó� 74create proxy_table" hz ��AQ Ó� 114create table4 *+2Ñ hz ��AQ Ó� 155

�2w ��, Á� 3 57:³, lïY 216O� }. Ð& O� }(OAM) ��

O"° FN 193?�

compute �� 336À � 27, 138À F�

compute 53À ô 27, 138À, ��A��­ 283��­ }G 286��9 �� �� 406¼^ ² 337�+I� ��� F� 286�+I� F� ]((Aggregate function) 286select �� ��

create index D Zñ 83, 87insert 299lock 0N^ ab 395lockIS T# ¶��£ 434rowcount úX 410truncate table" �N 429unlocked À �N 194update 434

®Å ������'! 450

®Å p"r�. p"r�(²Ä ¦¶) ��

®Å lock, sp_lock ��ê p"�Ì 307�¯ F,�*+, X9 Qï Õ�S 345print 340raiserror 345

>*�, ���

484

� ��� ��Q c: øù 120create default 72

ÎÍ

������ ÌÍ �� 7ÎÍ 6Í p"�Ì�N 225t� 98–110MÀ 261Ø+IS T� C n�T ½> 105

ÎÍ �, Transact-SQL 287, 289ÎÍ, Transact-SQL 287�� N8 �8

begin...end 42create procedure 101

%����

create indexR *+2Ñ 7� SX 94update statistics" 7� SX 447

AAbstract Plans(AP)

create plan4 *+2Ñ t� 98activation ���, alter role 13add ���

alter role 13alter table 18, 24

all ���grant 271, 279group by 283having �Q 9: ;X 283revoke 361select 376, 390union 430where 457

allow nested triggers E� Óx'( 165allow_dup_row ��, create index 87alter database �� 7–12������ ýp 10op�� ������ 10default ��� 7for load ��� 8for proxy_update ��� 8log on ��� 8

��

on ��� 7with override ��� 8

alter role �� 12–16activation ��� 13add ��� 13drop ��� 13exclusive ��� 13membership ��� 13passwd ��� 13

alter table �� 16–42��� ñ*- ÃÁ: !ã 36add ��� 18, 24asc �� 25check �� 23clustered N� �� 20constraint ��� 20default ��� 18desc �� 25drop ��� 24exp_row_size �� 25fillfactor �� 21foreign key N� �� 23identity ��� 19lock allpages �� 25lock datapages �� 25lock datarows �� 25locking }¯ 16max_rows_per_page �� 22nonclustered N� �� 20on ��� 22partition � 24primary key N� �� 20references N� �� 23replace ��� 24reservepagegap �� 25sp_dboptionV locking }¯ '! 39unique N� �� 20unpartition � 24user ��� 19

and ���Þ� �� 456Þ� ��Q Ø+I� ( 458

pw ´ 456ANSI ��p þ�A

dump database9 dumpvolume �� 235dump transaction9 dumpvolume �� 249load databaseQ c: listonly �� 311load transactionQ c: listonly �� 319

ansinull ��, set 400any ���

where � 457arithabort ��, set

arith_overflow 401arithignore ��, set

arith_overflow 402asc �� ��

alter table �� 25, 30create index �� 84create table �� 129

at ��create existing table 75create proxy_table 115create table 134dump database 234dump transaction 248load database 310load transaction 318

BB-£, �Ò�

fillfactor 85BNF(Backus Naur Form) � G x, xibcp(c� ñ* ��)

locking }¯ '! 41begin transaction �� 43

commit 52rollback cd 370

begin...end �� 42–43£Ü 158if...else 295

between ���check N� �� *+ 151where 456

blocksize ��

485

��

dump database 234dump transaction 249load database 310load transaction 318

boolean(ß�) �®¯select F 296

break �� 44–45, 460–461by À F� 2w �� 54bytes ��, readtext 351

Ccapacity ��

dump database 235dump transaction 249

cascade ��, revoke 363, 366case �®¯ 45–48, 50–51, 329–330

NULL 3 47, 50, 330chained ��, set 402char ��� ��À X� ² 337

char_convert ��, set 403@@char_convert �g '( 423chars q� characters ��, readtext 351check ��

alter table 23create table 132

checkalloc ��, dbcc 178checkcatalog ��, dbcc 178checkdb ��, dbcc 178checkpoint �� 48–49checkstorage ��, dbcc 178checktable ��, dbcc 179checkverify ��, dbcc 179CIS(Component Integration Services)hz ²Ä N� �� 20, 23

cis_rpc_handling ��, set �� 403clientapplname ��, set �� 404clienthostname ��, set �� 404clientname ��, set �� 404close on endtran ��, set 404close �� 49clustered ��t� 83

486

r�Z£ 88, 90�Ò���

��A �� 90, 143fillfactor 85

clustered N� ��alter table 20create table 129

cntrltype ��disk init 204disk reinit 212

coalesce ���, case 50commit �� 51–53

begin transaction 43, 52rollback 52, 370

commit work ��. commit �� ��

common �foreign �; �� ��

compact ��, reorg �� 356complete_xact ��, dbcc 179compute � 53–61

by *+2S TK 57order by 335, 385select 385

connect to �� 61constraint ���

alter table 20create table 128

consumers ��, update statistics �� 447continue �� 63–64

while ¨p 460create database �� 65–71Ú: 279default �� 65disk init 206for load ��� 66for proxy_update ��� 66log on ��� 66on ��� 65with default_location ��� 66with override ��� 66

create default �� 71–74�§ 72

create existing table �� 74–79��� �� '* 77

��

²Ä �ö� '! 77hz ��AQ Ó� 74hz p"�Ì X9 78

create function �� 79create index �� 82–97�� � �� 94�Ò� ��V locking ·� 95insert 300

create plan �� 97create procedure �� 98–1106Í p"�Ì 98Óx'( ² 262, 265return d� 107–108select * 105

create proxy_table �� 114–116p � ��A4 hz ��AQ Ó� 114

create role �� 116grant all 118

create rule �� 118–122create schema �� 122–123create table �� 125–157�� � �� 153� ² 337p � ��A4 hz ��AQ Ó� 155locking }¯ SX 153NULL 3 19, 128

create trigger �� 157–175, 278, 367create view �� 167–175cursor rows ��, set 404

Ddata-only locked ��A� ~-, �N, (XQ c: N: 37

dataserver �� ��disk mirror 209disk remirror 215���� ��� ��

datefirst ��, set 404dateformat ��, set 405datetime ��� ��

set ����

dbcc(������ �� Þ* ) 177–185

dbcc �� ��

readtext 352dbcc traceon 183dbcc tune 183DB-Library p"��©ÇË ·� 387dbwritetext D dbmoretext, writetext ¼^ 464prepare transaction 339set �� 407, 418waitfor mirrorexit 453

dbrepair ��, dbcc 180deallocate cursor �� 186declare cursor �� 188–194declare �� 186–188default database size E� Óx'(

sysconfigures 67default r�Z£ÎÍ 11

default ��create database �� 65

default ���alater database 7alter table 18create table 127

delete shared statistics �� 201delete statistics �� 201delete �� 194–200£Ü 161readpast �� 194truncate table ¼^ 429

deleted ��A£Ü 161, 162

density ��dump database 234dump transaction 248load database 310load transaction 318

desc ��alter table 25

desc �� ��alter table �� 30create index �� 84create table �� 129

disconnect �� 61disk init �� 203–207

487

��

master ������ ü¶ 205disk mirror �� 207–210disk refit �� 210

create database 69disk reinit �� 211–214

disk init �� ��

disk remirror �� 214–216³�ô lïõ ��

disk unmirror �� 216–219³�ô lïõ ��

dismount ��dump database 235dump transaction 250load database 311load transaction 319

distinct ���create view 168select 377, 390

drop database �� 221–222ád^ ������ 180

drop default �� 222–223drop index �� 224drop procedure �� 225–226��­^ p"�Ì 225, 262

drop role �� 226drop rule �� 227–228drop table �� 228–230drop trigger �� 230–231drop view �� 231–232drop ���

alter role 13alter table 24

dropdb ��, dbcc dbrepair 180dump database

compress �� 234dump database �� 233–246ýp, ������ ��

create databaseR *+: µ 69disk initR *+ µ 205dump transaction 239dump transaction with no_log *+ µ 248master ������ 239select into 393

dump transaction

compress �� 248

488

dump transaction �� 246–260ýp, £¤¥� "� ��

MÀ Ú: 260disk initR *+ µ 205select into/bulkcopy/pllsort 252standby_access �� 251trunc log on chkpt 252with no_log �� 251, 253, 254–255with truncate_only �� 253

dumpvolume ��dump database 235dump transaction 249load database 310load transaction 318

E@@error �g '(6Í p"�Ì 104*+, X9 Qï Õ�S 342, 349select into 393

else ���. if...else �� ��

enable xact coordination E� Óx'( 413end ��� 42engine ��, dbcc 180errorexit ���, waitfor 451escape ���

where 455exclusive ��, lock table 327exclusive ���

alter role 13execute �� 261–267

create procedure 104execute" p"�Ì MÀ 261exists ���

where 456exp_row_size ��

alter table...lock *+2 �Q úX 33create table 133, 154create table" SX 133select into 379select into" SX 379

external ��create existing table 74

��

create proxy_table 114create table 134

Ffast ��

dbcc indexalloc 181dbcc tablealloc 181, 183

fetch �� 267–269file ��

dump database 236dump transaction 250load database 311load transaction 319

fillfactorcreate index 85

fillfactor 3alter table...lock 31

fillfactor ��alter table 21create index 85, 94create table 130, 153

FIPS öÜHSIS T� insert ÎÍ 305HSIS T� update ÎÍ 444set �� 405

fipsflagger ��, set 405fix ��

dbcc 178, 181, 183dbcc indexalloc 181dbcc tablealloc 178

fix_text ��, dbcc 180, 185flushmessage ��, set 405for browse ��, select 387

union zS 433for load ��

create database 69for load ���

alater database 8create database �� 66

for load" t�: ������9 "don't recover" d� 70

for proxy_update ���alater database 8

create database �� 66for read only ��, declare cursor 188for update ��, declare cursor 188forceplan ��, set 405foreign key N� ��

alter table 23create table 132

foreign � 146forget_xact ��, dbcc 180forwarded_rows ��, reorg �� 356from ���

delete 195grant 275load database 310load transaction 318select 380update 435

full ��dbcc indexalloc 181dbcc tablealloc 181, 182

Ggoto ��� 269–270grant option for ��, revoke 363grant �� 62, 270–282�(role) 280all ��� 271drop role Ú: \] [ Y 227public �� 272

group by �Ù 173F� ]((Aggregate function) 283, 285having � 282–294having � åK 293having �, X� ² 293having �, �� SQL 286having �, Transact-SQL 287select 383–384

group by � 282–294guset *+,Ú: 281

489

��

Hhaving � 282–294F� ]((Aggregate function) 284, 285all ;X 283group by 282–294select 384Transact-SQL9 group by ÎÍ 287

holdlock ���readtext 350select 382

I@@identity �g '( 303@@isolation �g '( 423ID

sa_role D ������ `�, 420set proxy 421set session authorization 421setuser �� 425

ID �zúX 153

ID, *+,6Í p"�Ì(procid) 408

identity burning set factor E� Óx'( 302IDENTITY �3 Æ. 298³÷£ 35Ù 172ab 303, 394¶��£ Ø+ zS 441_c 3 302��A t� 152��AQ Æ. 302alter table ~-, �N q� (X 38NULL 3 303

IDENTITY �Q c: ���� 3 302, 406identity ���

alter table 19create table 127

identity_insert ��, set 406if update �, create trigger 158, 164if...else �� 295–297

490

"é '( 187continue 63

ignore_dup_key ��, create index 87ignore_dup_row ��, create index 87image ��� ��xq ³¹��Q ÌÍ 350£Ü 161order by- Ø+IS TK 335readtext9 \�� 3 349returnI� ��� � 391, 412union Ø+ zS 433writetext 461

in ���alter table 24check N� �� *+ 151where 456

indexalloc ��, dbcc 181init ��

dump database 236dump transaction 250

insert �� 297–305Ù 172, 303–304£Ü 161, 164create default 72IDENTITY � 302null/not null � 172update 299

inserted ��A£Ü 161, 162

into ���fetch 267insert 297select 378, 392union 431

is null ���where 455

isnull ��ê ](insert 301print 342select 391

isolation level�ñ û 387readpast �� 397

isolation level 2(�ñ û ) 387

��

JJava �, ~- 37Java e|

remove java�� 354jtc ��, set 406

Kkill �� 305–307

L@@langid �g '( 345language ��, set 406like ���

alter table 24check N� �� *+ 151where 455

listonly ��load database 311load transaction 319

load database

compress �� 310load database �� 309–317load transaction

compress �� 318load transaction �� 317–326lockû R w: ~�£ 350lock table ��H" ��A 326lock^ À �cdɲ ¶��£ 434

lock allpages ��alter table 25create table �� 133select into �� 378

lock datapages ��alter table 25create table �� 133select into �� 378

lock datarows ��alter table 25alter table �� 40

create table �� 133select into �� 378

lock nowait ��, set lock �� 407lock table �� 326, 327lock wait ��, set �� 407locking }¯'! 16, 25alter table" '! 16create table 153select into" SX 378

lockslock^ À �cdɲ ab 395lock^ À �cdɲ ¶��£ 434locked À �cdɲ �N 194

log on ���alater database 8create database 66

Mmaster ������������ �N 221ü¶ 253£¤¥� "� �N 240£¤¥� "� truncation 253alter database 10disk init 205disk mirror 208disk refit 210disk reinit 211disk remirror 214disk unmirror 218master ������ ñE 240

������ ��

master ������ ñE 240create databaseR *+: µ 69disk initR *+ µ 205

max_rows_per_page ��alter table 22, 31create index 86, 94create table 131, 153select into 378

membership ���

491

��

alter role 13mirror ���, disk mirror 208mirrorexit ���

waitfor 451mode ��, disk unmirror 217model ������ñ* 68

N@@nestlevel �g '( 266name ��

disk init 203disk reinit 211Z� £Ü 165Z� p"�Ì 107

no_log ��, dump transaction 248no_truncate ��, dump transaction 251nocount ��, set 406nodismount ��

dump database 235dump transaction 250load database 311load transaction 319

noexec ��, set 407nofix ��, dbcc

checkalloc 178indexalloc 181tablealloc 183

noholdlock ���, select 350, 382noinit ��

dump database 236dump transaction 250

nonclustered �� 83nonclustered N� ��

create table 129noserial ��, disk mirror 208not null 3٠172

not null ���create table 19, 128

not ���where 453

notify ��

492

dump database 237dump transaction 251load database 312load transaction 320

nounload ��dump database 236dump transaction 250load database 311load transaction 319

nowait ��lock table �� 327set lock �� 407

nowait ��, shutdown 427NULL 36Í p"�Ì� returnO ( åK 360c& 3 Æ. 301³÷£ �N cd 223� øùV � X9 121� � 73� ³÷£ 73, 121X� ² 336X9 73, 141£Ü 164check N� �� 152group by 285NULL ³÷£ 73, 121select F 391text D image � 300

NULL �9 6; ��� �� 141null ���

create table 19, 127, 128nullif ��� 329nullif �®¯ 329–330NULL� ÇS 3³÷£ �N cd 223insert 301select F 391

O@@options �g '( 423of ��, declare cursor 188offsets ��, set 407

��

on ���alater database 7alter table 22create database �� 65create index 88, 90create table 131, 134

online database �� 315, 330–332������ ¤�� *+ 315¶�þ�� 324dump transaction 322load transaction 321

Open Client + p"����� 407procid úX 408set �� 407, 418

open �� 332–333optdiag ��

create indexR *+2Ñ «� ��� 94simulated statistics "� 201, 423

optimized Ë�²dbcc indexalloc 181dbcc tablealloc 182

or ���Þ� ��Q Ø+I� ( 458where 457

orderøù ¹�� 0N 1206�� 333'*^ F,�Q²9 ² 340Qï Õ�S �, 340o�� X� 333, 385create procedure9 Óx'( 262, 265NULL 3 336

order by � 333–339compute by 58, 335, 385select 384

output ��create procedure 101, 262, 265execute 262return Óx'( 262

P@@parallel_degree �g '( 423

set parallel_degree 407page chain

partition 24, 34unpartition 24

parallel ���, select �� 381parallel_degree ��, set �� 407parseonly ��, set 407partition statistics

update statisticsR *+: ¶��£ 445partition �, alter table �� 24partition «�

update partition statisticsR *+0 ¶��£ 446

partitioned ��Aalter table 24

partitioned ��A9 ´�S N8 34«� ¶��£ 446

partitioning��A 16

passthrough ·�connect to �� 62

passwd ���alter role 13

physname ��disk init 203disk reinit 211

prefetch ���delete 195select 381set 408update 435

prepare transaction �� 339primary key N� ��

alter table 20create table 129

Primary ��, disk unmirror 216Primary � 146¶��£ 159

print �� 339–342"é '( 188raiserror *+ 342

procedure ��create existing table 74

493

��

process_limit_action ��, set 408processexit ���, waitfor 451procid ��, set 408proxy ��, set 409;Ñ 272�` 362

'public' �� 281, 367�� ��

Ú: 275–277grant 272revoke 363

public ���grant 272revoke 363

Qquiesce database �� 342–344quoted_identifier ��, set 409

R@@rowcount �g '( 423»² 269£Ü 163set nocount 423

raiserror �� 344–349"é '( 188print *+ 342print� ¼^ 349

rangeset rowcount 410

readpast ��delete �� 195isolation level 397readtext �� 350select �� 379update �� 435writetext �� 462

readtext �� 349–353rebuild ��, reorg �� 356rebuild_text ��, dbcc 181

494

reclaim_space ��, reorg �� 356reconfigure �� 353references N� ��

alter table 23create table 132

reindex ��, dbcc 182remove java �� 354–355remove ��, disk unmirror 217reorg �� 355–357replace ���, alter table 24reservepagegap ��

alter table 25, 31create index 86, 94create table 133, 154select into 379

resume ��, reorg 356retain ��, disk unmirror 217retaindays ��

dump database 236dump transaction 250

return Óx'(output ��� 101, 262

return �� 357–360return d� 06Í p"�Ì 107

return d� ��6Í p"�Ì 261, 357

revoke �� 361–368Ð& D �� Ú: 275public �� 363

role ��grant 273revoke 363set �� 409

rollback transaction ��. rollback �� ��

rollback trigger �� 163, 371–372rollback work ��. rollback �� ��

rollback �� 369–371£Ü 163, 165begin transaction 43commit 52

rowcount ��, set 410

��

S@@scan_parallel_degree �g '( 423

set scan_parallel_degree 410@@sqlstatus �g '(

fetch 269save transaction �� 372–373savepoints&ô\�£ p"r� ��

rollback 369save transaction4 *+2Ñ úX 373

scan_parallel_degree ��, set 410secondary ��, disk unmirror 216select into �� 378–393

compute�� Ø+ [ Y 58select into/bulkcopy/pllsort ������ ��£¤¥� "� ýp 252select into 393

select list 346–347, 377–398select �� 375–398"é '( 187'!^ À 27, 35'( 186£Ü 161create procedure 105create view 168group by D having � 282insert 301returnI� text ���9 ô 412

select ��, create view 168self_recursion ��, set 166, 410serial ��, disk mirror 208session authorization ��, set 410�` 272, 362

set �� 398–425xq set �� ��

lock wait 407statistics simulate 411strict_dtm_enforcement 411update 6 4356Í p"�Ì 6 109³÷£ úX 417� 409 ��� isolation level 413£Ü 6 162

setuser �� 425–426*+,9 Ú: *+ 275

setuser �� ��

share ��, lock table 327shared ���

select 382showplan ��, set 410shutdown c 428shutdown �� 427–429side ��, disk unmirror 216size ��

disk init 204, 212skip_ncindex ��, dbcc 178sort_merge ��, set 410sort_resources ��, set 411sp_bindefault ��ê p"�Ì

create default 72sp_bindrule ��ê p"�Ì

create rule 120sp_dboption ��ê p"�Ì&ô\�£ 48

sp_depends ��ê p"�Ì 142sp_transactions ��ê p"�Ì 180sp_unbindefault ��ê p"�Ì 222sp_unbindrule ��ê p"�Ì

create rule 120drop rule 227

space6Í p"�Ì 105������ ÌÍ �� 21������Q ~- 7–12"� r�Z£Q² *+ 179�Ò� 8�9£(extent) 181�Ò� ´�S 85, 130Ŧ� ^ 6Í p"�Ì 105ô 69clustered �Ò� 21clustered �Ò� D max_rows_per_page 86dbcc checktable Ë� 179max_rows_per_page 86reorg rebuildQ ÃÁ 357truncate table ��4 *+2Ñ NÜ 429

SQL FQ² BNF � G x, xiSQL F9 Z=>({}) xi

495

��

SQL ��set �� 424set session authorization 410

SQLSTATE �� ��

standby_access ��dump transaction 251online database 330

startserver �� ��disk mirror 209disk remirror 215���� ��� ��

statementscreate procedure 101

statisticssimulated, "� 202

statistics io ��, set 411statistics simulate ��, set �� 411statistics subquerycache ��, set 411statistics time ��, set 411statistics �, create index �� 87strict dtm enforcement E� Óx'( 411strict_dtm_enforcement ��, set �� 411string_rtruncation ��, set 412

insert 300update 440

stripe on ��dump database 235dump transaction 249load database 311load transaction 318

syb_identity ���select 394

sybsecurity �������N 222

syscolumns ��A 178syscomments ��Aøù X9 121³÷£ X9 72£Ü X9 166, 174p"�Ì XË 109

sysconfigures ��Adatabase size Óx'( 67

sysdevices ��Alï �� 217disk init 205

496

sysindexes ��Añ? �Ò� 96

syslogs ��Aq�9 ³¹��Q Ë� 209, 215ñE 247dbcc checktable MÀ 179

syslogs ��A ��

sysmessages ��Araiserror 345

sysobjects ��A£Ü ID 166

sysprocedures ��A£Ü MÀ �K 166

sysprotects ��Agrant/revoke F 278, 366sp_changegroup 281

sysservers ��ABackup Server 241, 256load database 315

sysstatistics ��Adelete statistics" «� �N 201

system r�Z£alater database 11

systransactions ��A 179sysusermessages ��A

raiserror 345

T@@textsize �g '( 423

readtext 352set textsize 412

@@tranchained �g '( 423table count ��, set 412table ��

create table 134tablealloc ��, dbcc 182tempdb ������Ð& ~- 143sysobjects ��A 142systypes ��A 143

text ��� ��xq ³¹��Q ÌÍ 350

��

£Ü 161order by- Ø+IS TK 335returnI� ��� � 391, 412textsize úX 412union Ø+ zS 433updateR *+0 5 ­ 440

textptr ]( 350, 352textsize ��, set 412then ��� when...then �� ��

time ��reorg 356waitfor 451

to ��dump database 234dump transaction 248revoke 366

transaction isolation level ��, set 412transactional_rpc ��, set 413Transact-SQL ��MÀ 261Á� ��A 1–5ÎÍ 287

Transact-SQL ��9 Ý� MÀ 261trucation³÷£3 72

truncate table �� 429–430delete ��Ë� µ� 197delete £Ü 162

truncate_only ��, dump transaction 248, 253truncation��4 �ü : �H" 440 �- SXIS T# ��� �� 100"�, _?^ ³¹��Q²� *+O ( åK

66£¤¥� "� 246

Uunion ÂG, 430–434*+ N: 433��A _c x( 431insert 300set string_rtruncation 412

unique N� �� 146unique ���

alter table 20create index 83create table 128

unload ��dump database 236dump transaction 250load database 311load transaction 319

unpartition��A 16

unpartition �, alter table 24update all statistics �� 444, 447update index statistics �� 447update partition statistics �� 445–446update statistics �� 447–450�j �� 448MÀ Z lock 448X� ÁE *e 448create index 89

update �� 434–444Ù 172, 443£Ü 161£Ü D if update 164ignore_dup_key 87ignore_dup_row 92insert 299readpast �� 435

us_english �8Á úX 418

use �� 450–451user ���

alter table 19create table 127

using ��, readtext 351, 352using...values ��, update statistics �� 447

V@@version �g '( 340valuesp"�Ì Óx'( q� �, 262

values ��, insert 298

497

��

varchar ��� ���ü D insert 300

vdevno ��disk init 203disk reinit 211

Wwait ��, lock table �� 327wait ��, shutdown 427waitfor �� 451–453when ��� when...then �� ��

when ���when...then �� ��

when...then �� 45where current of �

delete 196update 436

where � 453–459�ñ 290Ø+IS T� F� ]((Aggregate function) 458delete 195group by � 287having 458

while ¨p Å�¦ 64while ��� 459–461¨p 459breakR *+: ¨p ©ª 44continue 63

with check option ��٠174create view 169

with consumers ��, update statistics �� 447with consumers �, create index 88with default_location ���

create database �� 66with grant option ��, grant 273with log ��, writetext 462with no_error ��, set char_convert 403with no_log ��, dump transaction 248with no_truncate ��, dump transaction 251with nowait ��, shutdown 427with override �� 226with override ���

alater database 8

498

create database �� 66with recompile ��

create procedure 101execute 263

with resume ��, reorg 356with standby_access ��

dump transaction 251with statistics �, create index �� 87with time ��, reorg 356with truncate_only ��, dump transaction 248, 253with wait ��, shutdown 427with ���

rollback trigger 371set role �� 409

writes ��, disk mirror 208writetext �� 421–464£Ü 162

XX/Open XA 180