ΠΡΠΎΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΎΠΊ
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠ΅ Π² Transact-SQL, ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Transact-SQL Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Transact-SQL, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ SQL Server Database Engine, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΎΠΊ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- 1. ΠΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
- 2. ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
- 2.1 ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
- 2.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
- 2.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
- 2.4 Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ
- 3. ΠΡΠ±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²
- 4. ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- 4.1 ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- 4.2 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- 4.2.1 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ
- 4.2.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ
- 4.2.3 ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- 5. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ
- 5.1 ΠΡΠ±ΠΎΡ ΡΠΈΠΏΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π ΠΠ
- 5.2 ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ
- 5.3 Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ
- 6. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
- 6.1 ΠΠ°ΠΏΡΡΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
- 6.2 ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
- 6.3 ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
- 6.4 ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
- 6.4.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
- 7. ΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
- 7.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ
- 7.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ
- 7.3 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²
- 8. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
- 8.1 ΠΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
- 8.2 ΠΠΎΠ½ΠΈΡΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
- 8.3 Π’ΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ²
- 9. ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°Π½ΠΈΠ΅
- ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠ°Π½Π½Π°Ρ ΠΊΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΈΠ·Π²Π°Π½Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π‘Π£ΠΠ.
Π’ΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π½Π° Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΏΠ°ΡΠΊ Π°Π²ΡΠΎΡΡΠ°Π½ΡΠΏΠΎΡΡΠ°, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π² ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΠΏΡΡΡΠΈΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π‘Π£ΠΠ Π½Π° Π±Π°Π·Π΅ Microsoft SQL Server 2012, ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΠ΅ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠΏΡΠΎΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π·Π°ΠΊΠ°Π·ΠΎΠ², ΡΡΠΊΠΎΡΠΈΡ ΠΈΡ ΠΏΡΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ, ΡΡΠΎ Π±Π»Π°Π³ΠΎΠΏΡΠΈΡΡΠ½ΠΎ ΡΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π° ΠΏΡΠΈΠ±ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΏΡΠΎΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΎΠΊ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π΅ΡΡΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π΄ΠΎΡΡΠΈΡΡ ΡΠ΅Π»ΠΈ, ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅.
1. ΠΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
Π Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
ΠΠΠ‘Π’ 34. Ρ Ρ Ρ «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ»
ΠΠΠ‘Π’ 19. Ρ Ρ Ρ «ΠΠ΄ΠΈΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ»
IEEE 830−1994 «Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ»
IEEE 829 — ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²
ΠΠΠ‘Π’ 28 806 «ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². Π’Π΅ΡΠΌΠΈΠ½Ρ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ»
ΠΠΠ‘Π’ 28 195 «ΠΡΠ΅Π½ΠΊΠ° ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ»
ΠΠΠ‘Π’ 9126 «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΡΠ΅Π½ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠΎ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ»
ΠΠΠ‘Π’ Π ΠΠ‘Π/ΠΠΠ 92 991−93. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. — Π.: ΠΠ·Π΄-Π²ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ², 1994
2. ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
2.1 ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
Π ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π·Π°ΠΊΠ°Π·Ρ Π½Π° Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ. ΠΠ»ΠΈΠ΅Π½Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠΏ Π³ΡΡΠ·Π°, Π²Π΅Ρ, ΠΏΡΠ½ΠΊΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ½ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π±ΠΈΡΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ, Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π½Ρ. Π Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΡΠΈΠΊ Π·Π°Π±ΠΈΡΠ°Π΅Ρ Π³ΡΡΠ·, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΈΡ ΠΈ ΠΎΡΠ³ΡΡΠΆΠ°Π΅Ρ.
2.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠ° Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡΡΡΡ ΡΠΈΠΏ Π³ΡΡΠ·Π°, Π²Π΅Ρ, ΠΏΡΠ½ΠΊΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ½ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
2.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½ΡΠΉ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ, Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ, ΡΠ΅Π½Ρ
2.4 Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ
ΠΠ²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ Π΄Π΅Π»ΡΡΡΡ ΠΏΠΎ ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΈΠΌΡΡ Π³ΡΡΠ·ΠΎΠ². ΠΠΌΠ΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ Π² Π½Π°Π»ΠΈΡΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠΎ ΡΠΈΠΏΡ Π³ΡΡΠ·Π°, Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΡΠ΅ΡΠ²Π»Π΅Π½Π°.
3. ΠΡΠ±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠ±ΡΠ°Π½ Microsoft SQL Server 2012 Π² Π²ΠΈΠ΄Ρ Π΅Π³ΠΎ ΡΠΈΡΠΎΠΊΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΈ Π±ΠΎΠ³Π°ΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠ Π²ΡΠ±ΡΠ°Π½Π° ΡΡΠ΅Π΄Π° Microsoft Visual Studio 2012 ΠΈ ΡΠ·ΡΠΊ C#, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠΉ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Microsoft Windows.
4. ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
4.1 ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π ΠΠ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΠΈΡΡΠ½ΠΎΠΊ 1 — ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ
4.2 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
4.2.1 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ
Π’Π°Π±Π»ΠΈΡΠ° Orders ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π·Π°ΠΊΠ°Π·Π°Ρ Π½Π° Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ: Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ, ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π΄Π°ΡΡ Π·Π°ΡΠ²ΠΊΠΈ, ΡΠΈΠΏ Π³ΡΡΠ·Π°, ΠΌΠ°ΡΡΡ, ΠΏΡΠ½ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π’Π°Π±Π»ΠΈΡΠ° Criterias ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠΏΡ Π³ΡΡΠ·ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ: Π½ΠΎΠΌΠ΅Ρ ΡΠΈΠΏΠ°, ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΡΡΠΎΠ²Π΅Π½Ρ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
Π’Π°Π±Π»ΠΈΡΠ° Transport ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ± Π°Π²ΡΠΎΡΡΠ°Π½ΡΠΏΠΎΡΡΠ΅: Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ, Π³ΠΎΡΠ½ΠΎΠΌΠ΅Ρ, ΠΌΠ°ΡΠΊΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ, ΠΌΠΎΠ΄Π΅Π»Ρ, Π²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ, ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Ρ ΠΎΠ΄ΠΊΠΈ, Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΌΠΎΠ½ΡΠ΅.
Π’Π°Π±Π»ΠΈΡΠ° TransportCriterias ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π°Π²ΡΠΎΡΡΠ°Π½ΡΠΏΠΎΡΡΠΎΠΌ ΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π³ΡΡΠ·ΠΎΠ².
Π’Π°Π±Π»ΠΈΡΠ° Timetable ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ Π·Π°Π½ΡΡΠΎΡΡΡ Π°Π²ΡΠΎΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠ°Ρ ΠΈ Π΄Π°ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ.
4.2.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ «ΠΠ°ΠΏΡΠΎΡ ΠΡΠΈΡΠ΅ΡΠΈΠΈ+ΠΠ°ΠΊΠ°Π·Ρ» ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π·Π°ΠΊΠ°Π·Π°Ρ Π² ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΈΠ΄Π΅ — Π² ΡΠ°ΠΏΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π½ΠΎΠΌΠ΅ΡΠ° ΡΠΈΠΏΠΎΠ² Π³ΡΡΠ·ΠΎΠ² Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π½Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ «Π€ΠΈΠ»ΡΡΡ ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΡΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΊΠ°Π·Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° Π² ΠΏΡΡΠΌΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ — Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ.
4.2.3 ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π ΠΈΡΡΠ½ΠΎΠΊ 2 — ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΠ
5. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ
5.1 ΠΡΠ±ΠΎΡ ΡΠΈΠΏΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π ΠΠ
ΠΠΎΠΊΠ° Π½Π°ΡΠ° ΡΠΈΡΠΌΠ° ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠ°ΠΌ Π½Π΅ ΡΠ°Π·ΡΠΎΡΠ»Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΡΠΎΠΊΠΎ, Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ½ΠΈΠΌΠΊΠ°ΠΌΠΈ. ΠΠΎ, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠ΅ΠΌΠΏΡ ΡΠΎΡΡΠ°, Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π² Π±ΡΠ΄ΡΡΠ΅Π΅, Π³Π΄Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΡΠΆΠ΅ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡΡ. Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ½ΠΈΠΌΠΊΠ°ΠΌΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ°Π·Ρ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΈΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΠΏΠΎΡΠ΅ΡΡ, Π½ΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π½Π΅ Π±ΠΎΡΡΡ ΡΠ°ΡΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
5.2 ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ
ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ²:
1. Π£Π±Π΅Π΄ΠΈΠΌΡΡ, ΡΡΠΎ ΠΠ³Π΅Π½Ρ SQL Server Π²ΠΊΠ»ΡΡΠ΅Π½. Π Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ SQL Server (ΡΠΈΡΡΠ½ΠΎΠΊ 3) Π² ΠΏΡΠ½ΠΊΡΠ΅ «Π‘Π»ΡΠΆΠ±Ρ SQL Server» ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΡΠΎ ΠΠ³Π΅Π½Ρ SQL Server Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ «Π Π°Π±ΠΎΡΠ°Π΅Ρ», ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΠΈΠΌ Π΅Π³ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
Π ΠΈΡΡΠ½ΠΎΠΊ 3 — ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ SQL Server
2. Π MS SQL Server Management Studio Π² ΠΏΡΠ½ΠΊΡΠ΅ ΠΌΠ΅Π½Ρ «Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ» Π½Π°ΠΆΠ°ΡΡ ΠΠΠ Π½Π° «ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ» ΠΈ Π²ΡΠ±ΡΠ°ΡΡ «Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ» .
Π ΠΈΡΡΠ½ΠΎΠΊ 4 — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
3. ΠΡΠ±ΡΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, Π²ΡΠ±ΡΠ°ΡΡ ΡΠΈΠΏ «ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ», Π²ΡΠ±ΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π·Π° Π½Π΅Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΡΡ, Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΠ³Π΅Π½Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ² (ΡΠΈΡΡΠ½ΠΎΠΊ 5), ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΊ Π½Π΅ΠΉ (ΡΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΡ Π²Ρ ΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ASH-PCAsh), Π½Π°ΠΆΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ «ΠΠΎΡΠΎΠ²ΠΎ >>|», Π²Π²Π΅ΡΡΠΈ ΠΈΠΌΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ «ΠΠΎΡΠΎΠ²ΠΎ» .
4. Π ΠΏΡΠ½ΠΊΡΠ΅ «ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ» Π½Π°ΠΆΠ°ΡΡ ΠΠΠ Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π²ΡΠ±ΡΠ°ΡΡ «Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ» (ΡΠΈΡΡΠ½ΠΎΠΊ 6).
5. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π² ΠΎΠΊΠ½Π΅ «ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ» ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ-ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊ ΠΈ Π½ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ. ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΠ³Π΅Π½ΡΠ° SQL Server ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ½ΠΊΡΠ΅ 3 (ΡΠΈΡΡΠ½ΠΎΠΊ 7). ΠΠ°ΠΆΠ°ΡΡ «ΠΠΎΡΠΎΠ²ΠΎ >>|» ΠΈ ΡΠ½ΠΎΠ²Π° «ΠΠΎΡΠΎΠ²ΠΎ». Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π°! ΠΠΎΡΠ»Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Ρ Π² Π½ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π ΠΈΡΡΠ½ΠΎΠΊ 5 — ΠΠ°ΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π ΠΈΡΡΠ½ΠΎΠΊ 6 — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π ΠΈΡΡΠ½ΠΎΠΊ 7 — ΠΠ°ΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ
5.3 Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠ±Π΅ΠΈΡ Π±Π°Π·Π°Ρ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π½Π΅ ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ. Π ΡΡΠΎΠ±Ρ ΡΡΠΈ Π·Π°ΠΏΡΠΎΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠ±ΠΎΠ΅Π² Π½Π΅ Π²ΡΠ·Π²Π°Π»ΠΈ ΡΠ°ΡΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅.
6. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
6.1 ΠΠ°ΠΏΡΡΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π² Transact-SQL ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
1. Π―Π²Π½ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ BEGIN DISTRIBUTED TRANSACTION.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Orders Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ expert_db ΠΈ Π΅Π΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ re_ex, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
use expert_db
go
begin distributed transaction;
update Orders set Supplier = 'Izmenen' Where ID = '1017';
Update [ASH-PC]. re_ex.dbo.Orders set Supplier = 'Izmenen' Where ID = '1017';
commit transaction;
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΡΡ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΉΡΡ Π²Π½Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ: ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 8 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΡΡΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π’ΡΠΈΠ³Π³Π΅ΡΡ Π² Π±Π°Π·Π°Ρ , Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ Π²ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ Π² 2Ρ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ .
2. ΠΠ°Ρ ΠΎΠ΄ΡΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π° Π΄ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΡΡΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎ distributed, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΡΠ΅ΠΊΡ ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΌ ΠΆΠ΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 8 — Π Π°Π±ΠΎΡΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
6.2 ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
Π§ΡΠΎΠ±Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΠΈΡΠ°Π»Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ COMMIT TRANSACTION, Π»ΠΈΠ±ΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ROLLBACK TRANSACTION. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡ Π² Π±Π°Π·Π΅, Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ — ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ.
Π ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ:
use expert_db
go
begin transaction
update Orders set Customer = 'x' Where ID = '1016';
Update [ASH-PC]. re_ex.dbo.Orders set Customer = 'x' Where ID = '1016';
rollback transaction
begin transaction
update Orders set Customer = 'z' Where ID = '1017';
Update [ASH-PC]. re_ex.dbo.Orders set Customer = 'z' Where ID = '1017';
commit transaction
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊΠ° Ρ ID 1017, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅ 1016 ΠΌΡ ΠΎΡΠΊΠ°ΡΠΈΠ»ΠΈ.
6.3 ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π΄ΡΡΠ³Π°Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡΠΎΡΠΈΡΠ°Π»Π° Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ , Π»ΠΈΠ±ΠΎ ΠΊ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π»ΠΎΠΆΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΊΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, Π²ΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ½ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΡΠΏΠΎΠ»Π½ΠΈΠΌ 2 Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π° ΠΎΠΊΠ½Π° Π·Π°ΠΏΡΠΎΡΠ° Ρ ΡΡΠ΅Π΄Π΅ SQL Management Studio. ΠΠΎΠΌΠ΅ΡΡΠΈΠΌ ΠΊΠΎΠ΄ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π² ΡΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1
USE expert_db
BEGIN TRANSACTION
UPDATE Orders SET Mass = '1000' WHERE ID = '1008'
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2
USE expert_db
BEGIN TRANSACTION
UPDATE Orders SET Distance = '100' WHERE ID = '1008'
COMMIT TRANSACTION
ΠΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π·Π°ΠΏΡΠΎΡΡ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° Π»ΠΈΠ±ΠΎ ΠΎΡΠΊΠ°ΡΠ΅Π½Π°. ΠΠΎΠΏΠΈΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ COMMIT TRASACTION Π² ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ, ΠΈ Π²ΡΠΎΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ.
6.4 ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΡΠΎΠ±ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π·Π°Π΄Π°Ρ ΡΠΎΡΠ΅Π²Π½ΡΡΡΡΡ Π·Π° ΡΠ΅ΡΡΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΠ΅ΡΡΡΡΠ° Π, ΠΈ Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡ Π, Π° Π² ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π²ΡΠ°Ρ ΡΠ΅ΡΡΡΡ Π, Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠ΅ΡΡΡΡΠ° Π.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΠΏΠΎΠΊΠ° Π΄ΡΡΠ³Π°Ρ ΡΠ½ΠΈΠΌΠ΅Ρ ΡΠ²ΠΎΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ, ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ, ΠΏΠΎΠΊΠ° ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ. ΠΡΠ»ΠΈ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ), ΡΠΎ ΡΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ.
Π Π°Π½ΡΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»ΠΈ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ SQL Server ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π΅Π΅.
6.4.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² SQL Server Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΡΠΈΠ»ΠΈΡΡ Management Studio. ΠΠ΅ΡΠ²Π°Ρ ΠΈ Π²ΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠΎΠΌΠ΅ΡΡΠΈΠΌ ΠΊΠΎΠ΄ Π² ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ:
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 — Π¨Π°Π³ 1
USE expert_db
BEGIN TRANSACTION
UPDATE Orders SET Mass = '1000' WHERE ID = '1008'
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π²ΡΠΎΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 — Π¨Π°Π³ 2
USE expert_db
BEGIN TRANSACTION
UPDATE Transport SET MaxDistance = '1000' WHERE ID = '1'
UPDATE Orders SET Distance = '100' WHERE ID = '1008'
COMMIT TRANSACTION
ΠΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ½ΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΡΡΠΎΠΊΡ 1018 Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Orders.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡ.
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 — Π¨Π°Π³ 3
UPDATE Transport SET InRepair = '1' WHERE ID = '1'
COMMIT TRANSACTION
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ½ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ 1 Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Transport. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ 2 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. Π§Π΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ SQL Server ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΡΠ°Π½ΠΈΡ Π΅Π΅ (ΡΠΈΡΡΠ½ΠΎΠΊ 9).
Π ΠΈΡΡΠ½ΠΎΠΊ 9 — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
7. ΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
7.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌ Π΄Π°Π½Π½ΡΡ , ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ Orders Π½Π° 3 Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°ΡΡΠΈ: Π·Π°ΠΊΠ°Π·Ρ Π΄ΠΎ 2006 Π³ΠΎΠ΄Π°, Ρ 2006 ΠΏΠΎ 2011 Π³ΠΎΠ΄Ρ ΠΈ ΠΏΠΎΡΠ»Π΅ 2011 Π³ΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π³ΡΠ°Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ². Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΡ Π΄Π°ΡΡ Π½Π° 3 ΡΠ°ΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»Π΅Π²ΡΡ Π³ΡΠ°Π½ΠΈΡΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΄Π°Ρ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π» Π΄ΠΎ Π³ΡΠ°Π½ΠΈΡΡ, Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΌΡ Π³ΡΠ°Π½ΠΈΡΡ:
USE expert_db
CREATE PARTITION FUNCTION fnyears (Date)
AS RANGE LEFT FOR VALUES
('31/12/2005', '31/12/2010');
7.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΡ Π΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ. Π‘Ρ Π΅ΠΌΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π³ΡΡΠΏΠΏΠ°Ρ . Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π±Π°Π·Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ Π³ΡΡΠΏΠΏΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΠ΅ 3 Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ Orders. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ 3 ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π³ΡΡΠΏΠΏΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ:
USE expert_db;
GO
ALTER DATABASE expert_db
ADD FILEGROUP test1fg;
GO
ALTER DATABASE expert_db
ADD FILEGROUP test2fg;
GO
ALTER DATABASE expert_db
ADD FILEGROUP test3fg;
GO
ALTER DATABASE expert_db
ADD FILE
(
NAME = test1dat1,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11. MSSQLSERVERMSSQLDATAt1dat1. ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP test1fg;
ALTER DATABASE expert_db
ADD FILE
(
NAME = test2dat2,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11. MSSQLSERVERMSSQLDATAt2dat2. ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP test2fg;
GO
ALTER DATABASE expert_db
ADD FILE
(
NAME = test3dat3,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11. MSSQLSERVERMSSQLDATAt3dat3. ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP test3fg;
GO
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡ Π΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡ Π΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π³ΡΡΠΏΠΏΡ:
CREATE PARTITION SCHEME psYears AS PARTITION fnyears TO (test1fg, test2fg, test3fg);
7.3 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²
ΠΠ»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Orders. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π½Π° ΡΠ°Π½Π½ΠΈΡ ΡΡΠ°ΠΏΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅ ID ΡΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΏΠΎΡΡΠΎΠΌ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ Π½Π΅ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΠΠΠ Π½Π° ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΌ ΠΊΠ»ΡΡΠ΅, Π²ΡΠ±ΡΠ°ΡΡ «ΠΠ½Π΄Π΅ΠΊΡΡ ΠΈ ΠΊΠ»ΡΡΠΈ», Π² ΠΏΠΎΠ»Π΅ «Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ» Π²ΡΠ±ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ «Π½Π΅Ρ» (ΡΠΈΡΡΠ½ΠΎΠΊ 10).
Π ΠΈΡΡΠ½ΠΎΠΊ 10 — ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅:
CREATE clustered INDEX Order_ID ON Orders (ID, Date) ON psYearsAll (Date);
8. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
8.1 ΠΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΈΡΡ Π·Π°ΡΡΠ°ΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½ΠΎ Π΅ΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ Π·Π°ΠΏΡΠΎΡΠ΅ ΠΏΠΎ ΡΠ΅Π»ΡΠΊΡ ΠΌΡΡΠΈ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 11 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠ»Π°Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΏΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ» Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π»ΠΈΠ±ΠΎ Π² ΠΌΠ΅Π½Ρ «ΠΠ°ΠΏΡΠΎΡ» .
Π ΠΈΡΡΠ½ΠΎΠΊ 11 — ΠΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°.
8.2 ΠΠΎΠ½ΠΈΡΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
ΠΡΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΉΡΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ Π΄Π΅ΡΡΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΎΠΉ Π²Π°ΠΆΠ½ΡΠΉ, ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 12 ΠΏΠΎΠΊΠ°Π·Π°Π½ Π³ΡΠ°ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π ΠΈΡΡΠ½ΠΎΠΊ 12 — Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡ
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ½Π°Π±Π»ΡΠ΄Π°ΡΡ, Π·Π°ΠΏΡΠΎΡ Π²ΡΠ±ΠΎΡΠΊΠΈ 100 000 ΡΡΡΠΎΠΊ Π² ΠΈΠ½Π΄ΡΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π° 20−25%.
8.3 Π’ΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ²
Π’ΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² — ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ². Π’ΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π½Π° SQL Server ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ»ΠΎ Π·Π°ΡΡΠ°ΡΠ΅Π½ΠΎ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΡΡΡΡ SQL Server Profiler, Π² ΠΌΠ΅Π½Ρ «Π€Π°ΠΉΠ»» Π²ΡΠ±ΡΠ°ΡΡ «Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ…», ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ SQL Server, Π²ΡΠ±ΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ. ΠΠ°ΠΏΡΡΡΠΈΠΌ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° (ΡΠΈΡΡΠ½ΠΎΠΊ 13).
Π ΠΈΡΡΠ½ΠΎΠΊ 13 — Π’ΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ²
9. ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°Π½ΠΈΠ΅
Π’ΠΠΠ 4. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
1 Π¦Π΅Π»ΠΈ ΠΈ Π·Π°Π΄Π°ΡΠΈ
1) ΠΠ·ΡΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ.
2) ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Π°ΡΠΈΠ°Π½ΡΡ.
3) ΠΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅.
4) ΠΡΠΎΡΠΌΠΈΡΡ ΠΎΡΡΠ΅Ρ.
2 ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π²Π½Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ»ΡΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°, ΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½Π° ΡΠ°ΡΡΠΈΡΠ½Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
2.1 ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
MS SQL Server ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (Π΄Π°Π»Π΅Π΅ DTC) Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², — ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΊΠ°ΡΠ°. Π‘Π»ΡΠΆΠ±Π° DTC ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΎΠ±Π° ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ»ΡΠΆΠ±Π° DTC Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
1. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ.
2. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠ°ΠΏ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
3. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ.
4. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎΡΠ²Π΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌ ΠΈΠΌ.
ΠΡΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ DTC Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ»ΡΠΆΠ±ΠΎΠΉ SQL Server, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SQL Server Service Manager.
Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠΉ ΡΠ»ΡΠΆΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Π½Π° Π½Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² SQL Server. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ ΡΠ»ΡΠΆΠ±Ρ — msdtc. Π΅Ρ Π΅, ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ — 2,5 ΠΠ±Π°ΠΉΡ.
Π‘Π»ΡΠΆΠ±Π° DTC Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
2.2 ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠ΅ Π² Transact-SQL, ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Transact-SQL Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Transact-SQL, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ SQL Server Database Engine, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π»ΠΈΠ±ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ, Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ .
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ) (MS DTC), ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΠΎΠ³Π΄Π° ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ COMMIT ΠΈΠ»ΠΈ ROLLBACK, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ SQL Server Π²ΡΠ·ΡΠ²Π°Π΅Ρ MS DTC, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π΄Π²ΡΡ ΡΠ°Π·Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°Ρ ΡΠ²ΠΎΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ Transact-SQL, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° SQL Server Database Engine ΠΈ MS DTC.
2.2.1 ΠΠ°ΠΏΡΡΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π² Transact-SQL ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
1. Π―Π²Π½ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ BEGIN DISTRIBUTED TRANSACTION.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Orders Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ expert_db ΠΈ Π΅Π΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ re_ex, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
use expert_db
go
begin distributed transaction;
update Orders set Supplier = 'Izmenen' Where ID = '1017';
Update [ASH-PC]. re_ex.dbo.Orders set Supplier = 'Izmenen' Where ID = '1017';
commit transaction;
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΡΡ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΉΡΡ Π²Π½Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ: ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 14 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΡΡΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π’ΡΠΈΠ³Π³Π΅ΡΡ Π² Π±Π°Π·Π°Ρ , Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ Π²ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ Π² 2Ρ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ .
2. ΠΠ°Ρ ΠΎΠ΄ΡΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π° Π΄ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΡΡΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎ distributed, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΡΠ΅ΠΊΡ ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΌ ΠΆΠ΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 14 — Π Π°Π±ΠΎΡΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
2.2.2 ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π§ΡΠΎΠ±Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΠΈΡΠ°Π»Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ COMMIT TRANSACTION, Π»ΠΈΠ±ΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ROLLBACK TRANSACTION. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡ Π² Π±Π°Π·Π΅, Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ — ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ:
use expert_db
go
begin transaction
update Orders set Customer = 'x' Where ID = '1016';
Update [ASH-PC]. re_ex.dbo.Orders set Customer = 'x' Where ID = '1016';
rollback transaction
begin transaction
update Orders set Customer = 'z' Where ID = '1017';
Update [ASH-PC]. re_ex.dbo.Orders set Customer = 'z' Where ID = '1017';
commit transaction
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊΠ° Ρ ID 1017, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅ 1016 ΠΌΡ ΠΎΡΠΊΠ°ΡΠΈΠ»ΠΈ.
2.3 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΠ½ΠΎΠ³ΠΈΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π²ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ±ΠΎΡΠΎΠΌ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ. Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ — ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ², ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π²ΡΠ΅ ΡΠ·Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π° ΡΡΠ°Π·Ρ Π½Π° Π²ΡΠ΅Ρ . ΠΠ°ΠΊΠΎΠΉ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ°Π΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ.
2.4 ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π΄ΡΡΠ³Π°Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡΠΎΡΠΈΡΠ°Π»Π° Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ , Π»ΠΈΠ±ΠΎ ΠΊ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π»ΠΎΠΆΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΊΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, Π²ΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ½ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΡΠΈΠΌΠ΅Ρ. ΠΡΠΏΠΎΠ»Π½ΠΈΠΌ 2 Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π° ΠΎΠΊΠ½Π° Π·Π°ΠΏΡΠΎΡΠ° Ρ ΡΡΠ΅Π΄Π΅ SQL Management Studio. ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΊΠΎΠ΄ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π² ΡΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1
USE expert_db
BEGIN TRANSACTION
UPDATE Orders SET Mass = '1000' WHERE ID = '1008'
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2
USE expert_db
BEGIN TRANSACTION
UPDATE Orders SET Distance = '100' WHERE ID = '1008'
COMMIT TRANSACTION
ΠΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° Π»ΠΈΠ±ΠΎ ΠΎΡΠΊΠ°ΡΠ΅Π½Π°. ΠΠΎΠΏΠΈΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ COMMIT TRASACTION Π² ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ, ΠΈ Π²ΡΠΎΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ.
2.5 ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΡΠΎΠ±ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π·Π°Π΄Π°Ρ ΡΠΎΡΠ΅Π²Π½ΡΡΡΡΡ Π·Π° ΡΠ΅ΡΡΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΠ΅ΡΡΡΡΠ° Π, ΠΈ Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡ Π, Π° Π² ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π²ΡΠ°Ρ ΡΠ΅ΡΡΡΡ Π, Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠ΅ΡΡΡΡΠ° Π.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΠΏΠΎΠΊΠ° Π΄ΡΡΠ³Π°Ρ ΡΠ½ΠΈΠΌΠ΅Ρ ΡΠ²ΠΎΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ, ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ, ΠΏΠΎΠΊΠ° ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ. ΠΡΠ»ΠΈ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ), ΡΠΎ ΡΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ.
Π Π°Π½ΡΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»ΠΈ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ SQL Server ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π΅Π΅.
2.5.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² SQL Server Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΡΠΈΠ»ΠΈΡΡ Management Studio. ΠΠ΅ΡΠ²Π°Ρ ΠΈ Π²ΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΡΠΈΠΌΠ΅Ρ. ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΊΠΎΠ΄ Π² ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΅Π³ΠΎ:
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 — Π¨Π°Π³ 1
USE expert_db
BEGIN TRANSACTION
UPDATE Orders SET Mass = '1000' WHERE ID = '1008'
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π²ΡΠΎΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 — Π¨Π°Π³ 2
USE expert_db
BEGIN TRANSACTION
UPDATE Transport SET MaxDistance = '1000' WHERE ID = '1'
UPDATE Orders SET Distance = '100' WHERE ID = '1008'
COMMIT TRANSACTION
ΠΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ½ΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΡΡΠΎΠΊΡ 1018 Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Orders.
ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ.
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 — Π¨Π°Π³ 3
UPDATE Transport SET InRepair = '1' WHERE ID = '1'
COMMIT TRANSACTION
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ½ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ 1 Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Transport. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ 2 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. Π§Π΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ SQL Server ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΡΠ°Π½ΠΈΡ Π΅Π΅ (ΡΠΈΡΡΠ½ΠΎΠΊ 15).
Π ΠΈΡΡΠ½ΠΎΠΊ 15 — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
3 ΠΠ°Π΄Π°Π½ΠΈΡ ΠΠ»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π ΠΠ (ΡΠΌ. Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ 3) Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
1. ΠΠ·ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ»ΡΠΆΠ±Ρ DTC.
2. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
3. ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π²ΡΠ΅ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅.
4. ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΊΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
5. Π‘ΠΎΠ·Π΄Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΊΠ»ΡΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
6. Π‘Π΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄Ρ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅.
4 ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
1. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ Π΅Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
2. ΠΠ°ΠΊΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ?
3. ΠΠ°ΠΊΠΎΠ²Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ?
4. ΠΠ°ΠΊΠΎΠ²Ρ ΠΎΡΠ»ΠΈΡΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Transact-SQL ΠΎΡ MS DTC?
5. Π ΡΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ?
6. ΠΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ?
7. ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ?
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π² ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, Π±ΡΠ» ΠΈΠ·ΡΡΠ΅Π½ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Π±ΠΈΠ·Π½Π΅ΡΠ° Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΎΠΊ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΎΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π³ΡΡΠ·ΠΎΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΎΠΊ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π΅ΡΡΡΠΊΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π·Π°ΠΊΠ°Π·ΠΎΠ², ΡΡΠΊΠΎΡΠΈΡΡ ΠΈΡ ΠΏΡΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ, ΡΡΠΎ Π±Π»Π°Π³ΠΎΠΏΡΠΈΡΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ±ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
1. ΠΠ°Π»ΡΡ ΠΈΠ½Π° Π. Π. ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠ½ΠΎΠ²Ρ, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. — ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2006. — 528 Ρ.
2. ΠΠΈΠ»ΡΡΠ΅Π½ ΠΠΎΠ». Microsoft SQL Server 2005. ΠΠΈΠ±Π»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: «Π.Π. ΠΠΈΠ»ΡΡΠΌΡ», 2008. — 1232 Ρ.
3. ΠΠ°ΡΡΠΈΠ½ Π€Π°ΡΠ»Π΅Ρ, ΠΠ΅Π½Π΄Π°Π»Π» Π‘ΠΊΠΎΡΡ — UML. ΠΡΠ½ΠΎΠ²Ρ — 2002.
4. ΠΠ°Π²Π»ΠΎΠ²ΡΠΊΠ°Ρ Π’. Π. C#. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ: ΡΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ². — Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2007. — 432 Ρ.
5. Π¨ΠΈΠ»Π΄Ρ Π. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΏΠΎ C#. ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: ΠΠΈΠ»ΡΡΠΌΡ, 2004.
6. ΠΡΠ»ΠΎΠ² Π‘. Π. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. — Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2003. — 480Ρ.
7. ΠΠ΅ΠΎΠ½Π΅Π½ΠΊΠΎΠ² Π. Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ UML. — BHV Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2001. — 304Ρ.
8. ΠΠ²Π°Π½ΠΎΠ²Π° Π. Π‘. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: Π£ΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ². — Π.: ΠΠ·Π΄-Π²ΠΎ ΠΠΠ’Π£ ΠΈΠΌ. Π. Π. ΠΠ°ΡΠΌΠ°Π½Π°, 2002.
9. ΠΡΡ Π΅Π²ΠΈΡ Π. Π. ΠΠ΅ΠΊΡΠΈΠΈ ΠΏΠΎ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ, 2002 Π³. — 165 Ρ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΠΈΡΡΠΈΠ½Π³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Transport
" SELECT * FROM Transport Where ID IN (select TransportID FROM TransportCriterias WHERE CriteriaID = '" + order. FreightCriteriaID + «') and ID not in (select TransportID from Timetable Where Date = '» + order. Date + «') and Capacity >= '» + order. Mass + «' and MinDistance <= '» + order. Distance + «' and MaxDistance >='» + order. Distance + «' and InRepair = 0»
SELECT * FROM Transport
SELECT CriteriaID FROM TransportCriterias WHERE TransportID = '" + tID + «'
delete from TransportCriterias
INSERT INTO TransportCriterias values ((select ID from Transport where RegNumber Like '" + RegNumber + «'), «+ CriteriaID + «)
SELECT ID, RegNumber FROM Transport
select distinct «+ TransportCrit + «FROM Transport where «+ TransportCrit + «is not null
ΠΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Criterias
SELECT * FROM Criterias Where [Level] = '" + Level + «' order by Name
SELECT Name FROM Criterias Where ID = '" + ID + «' order by Name
select * from Criterias where Parent = (select ID from Criterias where Name like '" + ParentName + «') order by Name
SELECT * FROM Criterias Where Name LIKE '" + Name + «' and [Level] = '» + Level + «' order by Name
SELECT ID FROM Criterias Where [Name] LIKE '" + Name + «'
SELECT ID FROM Criterias Where [Parent] = '" + ParentID + «'
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ Criterias
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
insert into Criterias ([Parent], [Level], [Name]) values ('0','0','" + Name + «')
insert into Criterias ([Parent], [Level], [Name]) values ((select id from criterias where name like '" + Parent + «'),'» + Level + «','» + Name + «')
ΠΠ°ΠΏΡΠΎΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅
delete from Orders where FreightCriteriaID =" + Find (Name)
delete from Criterias where [Name] like '" + Name + «'
delete from Orders where FreightCriteriaID IN (SELECT ID FROM Criterias Where Parent LIKE '" + ParentID + «')
delete from Criterias where [Parent] = '" + ParentID + «'
delete from TransportCriterias where [CriteriaID] = '" + ID + «'
delete from Criterias where [ID] = '" + ID + «'
delete from TransportCriterias where [CriteriaID] IN (SELECT ID FROM Criterias Where Parent LIKE '" + ParentID + «')
delete from Criterias where [Parent] = '" + ParentID + «'
delete from Criterias where [ID] = '" + ID + «'
delete from Orders where [ID] = '" + ID. ToString () + «'
delete from TimeTable where [OrderID] = '" + ID. ToString () + «'
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ Orders
insert into orders (Supplier, Customer, Date, FreightCriteriaID, Mass, Destination, Distance) values ('" + os. Supplier + «','» + os. Custumer + «','» + os.Date.ToString () + «',» + os.FreightCriteriaNameID.ToString () + «,» + os.Mass.ToString () + «,'» + os. Destination + «',» + os. Distance + «);
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ Timetable
insert into Timetable (TransportID, OrderID, [Date]) values ((select ID from Transport Where RegNumber = '" + RegNumber + «'),(select MAX (ID) from Orders),'» + Date + «');
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎΠΈΡΠΊΠ°
USE expert_db;
GO
CREATE PROCEDURE Find @FName varchar (20)
AS
SELECT @FName = '%' + RTRIM (@FName) + '%';
SELECT *
FROM Orders
WHERE Supplier LIKE @FName;
ΠΠ°ΠΏΡΡΠΊ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
USE expert_db;
GO
EXEC Find @FName = 'Π°';
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ
use expert_db
go
Create procedure Existance
@Type nvarchar (100)
AS
IF EXISTS (SELECT * FROM Orders WHERE FreightCriteriaID = (select id from Criterias Where Name = @Type))
Print 'ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ'
else
Print 'ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ'
ΠΠ°ΠΏΡΡΠΊ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
use expert_db
go
execute Existance 'ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ'
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
use expert_db
go
create procedure sum_mass_by_supp
@Supp varchar (50)
as
select Supplier, sum (Mass) AS Summ from Orders group by Supplier Having Supplier = @Supp
ΠΠ°ΠΏΡΡΠΊ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
use expert_db
go
execute sum_mass_by_supp 'ΠΠ»Π°Π΄ΠΎΡ'
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
use expert_db
go
begin /*distributed*/ transaction;
update Orders set Supplier = 'Izmenen' Where ID = '1017';
Update [ASH-PC]. re_ex.dbo.Orders set Supplier = 'Izmenen' Where ID = '1017';
commit transaction;
ΠΡΠΊΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
use expert_db
go
Declare @Transa varchar (10) = 'Transa1';
begin transaction @Transa;
update Orders set Customer = 'x' Where ID = '1016';
Update [ASH-PC]. re_ex.dbo.Orders set Customer = 'x' Where ID = '1016';
rollback transaction @Transa;
begin transaction;
update Orders set Customer = 'z' Where ID = '1017';
Update [ASH-PC]. re_ex.dbo.Orders set Customer = 'z' Where ID = '1017';
commit transaction
ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 — Π¨Π°Π³ 1
USE expert_db
BEGIN TRANSACTION
UPDATE Orders SET Mass = '1000' WHERE ID = '1008'
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 — Π¨Π°Π³ 2
USE expert_db
BEGIN TRANSACTION
UPDATE Transport SET MaxDistance = '1000' WHERE ID = '1'
UPDATE Orders SET Distance = '100' WHERE ID = '1008'
COMMIT TRANSACTION
— Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 — Π¨Π°Π³ 3
UPDATE Transport SET InRepair = '1' WHERE ID = '1'
COMMIT TRANSACTION
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°
USE expert_db;
GO
ALTER DATABASE expert_db
ADD FILEGROUP test1fg;
GO
ALTER DATABASE expert_db
ADD FILEGROUP test2fg;
GO
ALTER DATABASE expert_db
ADD FILEGROUP test3fg;
GO
— Adds one file for each filegroup.
ALTER DATABASE expert_db
ADD FILE
(
NAME = test1dat1,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11. MSSQLSERVERMSSQLDATAt1dat1. ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP test1fg;
ALTER DATABASE expert_db
ADD FILE
(
NAME = test2dat2,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11. MSSQLSERVERMSSQLDATAt2dat2. ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP test2fg;
GO
ALTER DATABASE expert_db
ADD FILE
(
NAME = test3dat3,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11. MSSQLSERVERMSSQLDATAt3dat3. ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP test3fg;
GO
USE expert_db
CREATE PARTITION FUNCTION fnyears (Date)
AS RANGE LEFT FOR VALUES
('31/12/2005', '31/12/2010');
CREATE PARTITION SCHEME psYears AS PARTITION fnyears TO (test1fg, test2fg, test3fg);
CREATE clustered INDEX Order_ID ON Orders (ID, Date) ON psYearsAll (Date);
ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
USE expert_db;
GO
SET NUMERIC_ROUNDABORT OFF;
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER, ANSI_NULLS ON;
GO
CREATE VIEW vOrders
WITH SCHEMABINDING
AS
SELECT dbo.Orders.Supplier AS ΠΠΎΡΡΠ°Π²ΡΠΈΠΊ, dbo.Orders.Customer AS ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ, dbo.Orders.Date AS ΠΠ°ΡΠ°, dbo.Criterias.Name AS ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, dbo.Orders.Mass AS ΠΠ΅Ρ, dbo.Orders.Destination AS ΠΠ΄ΡΠ΅Ρ,
dbo.Orders.Distance AS Π Π°ΡΡΠΎΡΠ½ΠΈΠ΅, dbo.Orders.ID as oID, dbo.Criterias.ID AS cID
FROM dbo. Criterias INNER JOIN
dbo.Orders ON dbo.Criterias.ID = dbo.Orders.FreightCriteriaID
GO
—Create an index on the view.
CREATE UNIQUE CLUSTERED INDEX IDX_V1
ON vOrders (oID, cID);
GO