sybase enterprise 12
TRANSCRIPT
�� �� : 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
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
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
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
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
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
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
���� 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
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
MÀ
*+, 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