ืคึผืจืขืืืกืืึธืจื
ืึทืืึธื, ืืื ืกืืจ ืฆื ืจืขืคึผืจืึธืืืฆืืจื ืึท ืืฉืืง, ืืื ืืืจืฃ ืึท ืืึทืงืึทืคึผ ืคืื ืื ืคึผืจืึธืืืงืฆืืข ืืึทืืึทืืืืก.
ืฆื ืืืื ืืืขืจืจืึทืฉื, ืืื ืืขืืืคื ืืื ืื ืคืืืืขื ืืข ืืืืืืืืฉืึทื ื:
- ืื ืืึทืืึทืืืืก ืืึทืงืึทืคึผ ืืื ืืขืืืื ืืืืฃ ืื ืืืขืจืกืืข ืกืงื ืกืขืจืืืืจืขืจ ืงืกื ืืืงืก ืืื ืืื ืืขืืืขื ื ืื ืงืึทืืคึผืึทืืึทืืึทื ืืื ืืืื ืกืงื ืกืขืจืืืืจืขืจ ืงืกื ืืืงืก.
- ืืืืฃ ืืืื ืึทืจืืขื ืงืึธืืคึผืืืืขืจ, ืื ืึทืก ืืขืืืืื ื ืืื ืืขืืืขื ืคึฟืขื ืฆืืขืจ ืงืกื ืืืงืกืึทืืื ืืื ืงืขื ื ืืฉื ืืขืจืืืึทื ืืืงื ืกืงื ืกืขืจืืืืจืขืจ ืึทืจืืืฃ ืฆื ืืืขืจืกืืข 2016
- ืืขืจ ืืขืฉืืืฆื ืคึผืจืึธืืืงื ืืื ืืขืืืขื ืืืื ืคืื ืึท ืืจืขืกืขืจืข ืกืืกืืขื ืืื ืึท ืืืืืื ืงืึทืคึผืึทืื ืืขืืึทื ืึทืจืงืึทืืขืงืืฉืขืจ ืืื ืืืื ืืขืจืขืื ืฆื ืื ืืขืจืข ืคึผืจืึธืืืงืื ืืื ืืึทืกืขืก, ืึทืืื ืขืก ืงืขื ื ืขืืขื ืึท ืืืืขืจ ืืึทื ื ืฆืืื ืฆื ืฆืขืืืืงืืขื ืขืก ืฆื ืื ืื ืืขืจ ืกืืึทื ืฆืืข.
ืืขืืขืื ืื ืืืืื, ืืื ืืขืงืืืขื ืฆื ืื ืืกืงื ื ืึทื ืื ืฆืืึทื ืืื ืืขืงืืืขื ืคึฟืึทืจ ืงืจืึทืืฉืื ืคืื ื ืื-ื ืึธืจืืึทื ืกืึทืืืฉืึทื ื.
ืจืืกืืึธืจืื ื ืืึทืื ืคึฟืื ืึท ืืึทืงืึทืคึผ
ืืื ืืืืกืืขืจืืืืืื ืฆื ื ืืฆื ืึท ืืืืจืืืึทื ืืึทืฉืื
ืงืึทื ืคืืืืขืจ ืึทืงืกืขืก ืฆื SQL ืกืขืจืืืืจืขืจ ืืืืฃ ืึท ืืืืจืืืึทื ืืึทืฉืื
ืืขืจื ืึธื, ืขืก ืืื ื ืืืืืง ืฆื ื ืขืืขื ืขืืืขืืข ืกืืขืคึผืก ืฆื ืงืขื ืขื ืึทืงืกืขืก SQL Server ืคึฟืื ืึทืจืืืก:
- ืคึฟืึทืจ ืื ืคืืืจืืืึทื, ืืืืื ืึท ืืขืจืฉื ืฆื ืืึธืคึผืงืขื ืคึผืึธืจื ืจืืงืืืขืก 1433.
- ืขืก ืืื ืืืืืืจืึทืืึทื ืึทื ืึทืงืกืขืก ืฆื ืื ืกืขืจืืืขืจ ืืืื ื ืืฉื ืืืจื Windows ืึธืืขื ืืึทืงืืืฉืึทื, ืึธืืขืจ ืืืจื SQL ื ืืฆื ืึท ืืึธืืื ืืื ืคึผืึทืจืึธื (ืขืก ืืื ืืจืื ืืขืจ ืฆื ืฉืืขืื ืึทืจืืืฃ ืึทืงืกืขืก). ืึธืืขืจ, ืืื ืืขื ืคืึทื, ืืืจ ืืึทืจืคึฟื ืฆื ืืขืืขื ืงืขื ืฆื ืืขืื SQL ืึธืืขื ืืึทืงืืืฉืึทื ืืื ืื SQL ืกืขืจืืืืจืขืจ ืคึผืจืึธืคึผืขืจืืืขืก.
- ืืื ืืึทื ืืฆืขืจ ืกืขืืืื ืืก ืืืืฃ SQL Server ืืืืฃ ืื ืงืืืืื ืืึทื ืืฆืขืจ ืืึทืคึผืื ื ืกืคึผืขืฆืืคืืฆืืจื ืื ืืึทื ืืฆืขืจ ืจืึธืืข ืคึฟืึทืจ ืื ืืขืืื ื ืืึทืืึทืืืืก db_securityadmin.
ืืึทืื ืึทืจืืืขืจืคืืจื
ืึทืงืืืึทืืื, ืื ืืึทืื ืึทืจืืืขืจืคืืจื ืืื ืืืฉืืืื ืคืื ืฆืืืื ืกืืึทืืขืก:
- ืืึทืืึท ืกืืฉืขืืึท ืึทืจืืืขืจืคืืจื (ืืืฉื, ืงืืงื, ืกืืึธืจื ืคึผืจืึธืืกืืืืฉืขืจื, ืืื"ื ื)
- ืืจืึทื ืกืคืขืจืื ื ืื ืืึทืื ืืื
ืืึทืืึท ืกืืฉืขืืึท ืึทืจืืืขืจืคืืจื
ืืืจ ืืืจืืคืืจื ืื ืคืืืืขื ืืข ืึทืคึผืขืจืืืฉืึทื ื:
- ืงืืืึทืื ืืึทืกืงืก -> ืืืฉืขื ืขืจืืื ืกืงืจืืคึผืก ืคึฟืึทืจ ืึท ืคึผืึธืจืืึทืืืื ืืึทืืข.
- ืืืืกืงืืืึทืื ืื ืึทืืืืฉืขืงืฅ ืืืจ ืืึทืจืคึฟื ืฆื ืึทืจืืืขืจืคืืจื ืึธืืขืจ ืืึธืื ืื ืคืขืืืงืืึทื ืืืขืจื (ืืื ืืขื ืคืึทื, ืกืงืจืืคึผืก ืืืขื ืืืื ืืืฉืืคื ืคึฟืึทืจ ืึทืืข ืืืืืึทืืืืก ืึทืืืืฉืขืงืฅ).
- ืกืคึผืขืฆืืคืืฆืืจื ืื ืกืขืืืื ืืก ืคึฟืึทืจ ืฉืคึผืึธืจื ืื ืฉืจืืคื. ืขืก ืืื ืืขืจืกื ืืึทืงืืืขื ืฆื ืจืึทืืขืืืขื ืื ืฉืจืืคื ืืื ืึท ืืืื ืืื ืืงืึธื ืืขืงืข. ืืขืจื ืึธื, ืืื ืคืึทื ืคืื ืืืจืืคืึทื, ืืืจ ืืึธื ื ืื ืืึทืจืคึฟื ืฆื ืืืืขืจืืืจื ืึทืืข ืื ืกืืขืคึผืก ืืืืืขืจ.
ืึทืืึธื ืื ืฉืจืืคื ืืื ืืขืจืืืขืืืขื, ืขืก ืงืขื ืขื ืืืื ืืืืคื ืืืืฃ ืืขืจ ืึธืจืืืื ืขื SQL Server (ืึทืื ืืืขืจืกืืข) ืฆื ืฉืึทืคึฟื ืื ืคืืจืืื ืื ืืึทืืข.
Warning: ื ืึธื ืขืงืกืึทืงืืืืื ื ืื ืฉืจืืคื, ืืืจ ืืึทืจืคึฟื ืฆื ืงืึธื ืืจืึธืืืจื ืื ืงืึธืจืขืกืคึผืึธื ืืขื ืฅ ืฆืืืืฉื ืื ืกืขืืืื ืืก ืคืื ืื ืืึทืืึทืืืืก ืคึฟืื ืื ืืึทืงืึทืคึผ ืืื ืื ืืึทืืึทืืืืก ืืืฉืืคื ืืืจื ืื ืฉืจืืคื. ืืื ืืืื ืคืึทื, ืขืก ืืื ืืขืืืขื ืงืืื ืืึทืฉืืขืืืงื ืคึฟืึทืจ COLLATE ืืื ืืขื ืฉืจืืคื, ืืืึธืก ืืขืคืืจื ืฆื ืึท ืืืจืืคืึทื ืืืขื ืืจืึทื ืกืคืขืจืื ื ืืึทืื ืืื ืืึทื ืกืื ื ืืื ืึท ืืึทืืืืจืื ืฆื ืจืืงืจืืืื ืื ืืึทืืึทืืืืก ืืื ืื ืกืึทืคึผืืึทืืขื ืืึทื ืฉืจืืคื.
ืืึทืื ืึทืจืืืขืจืคืืจื
ืืืืืขืจ ืืืจ ืึทืจืืืขืจืคืืจื ืืึทืื, ืืืจ ืืืื ืืืกืืืืึทื ืื ืงืึธื ืืจืึธื ืคืื ืึทืืข ืจืืกืืจืืงืฉืึทื ื ืืืืฃ ืื ืืึทืืึทืืืืก:
EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'
ืืึทืื ืึทืจืืืขืจืคืืจื ืืื ืืขืคืืจื ืืืืก ื ืืฆื ืื ืืึทืื ืึทืจืืึทื ืคืืจ ืืึทืืขืง ืืึทืกืงืก -> ืึทืจืืึทื ืคืืจ ืืึทืืึท ืืืืฃ SQL Server, ืืื ืื ืืึทืืึทืืืืก ืืืฉืืคื ืืืจื ืื ืฉืจืืคื ืืื ืืืื:
- ืกืคึผืขืฆืืคืืฆืืจื ืื ืงืฉืจ ืกืขืืืื ืืก ืฆื ืื ืืงืืจ (SQL Server 2016 ืืืืฃ ืึท ืืืืจืืืึทื ืืึทืฉืื). ืืื ืืขืืืืื ื ืืึทืื ืืงืืจ ืกืงื ืกืขืจืืืืจืขืจ ืืขืืืืจื ืงืืืขื ื ืืื ืื ืึทืคืึธืจืืขื ืฉืึทื ื SQL ืึธืืขื ืืึทืงืืืฉืึทื.
- ืกืคึผืขืฆืืคืืฆืืจื ืื ืงืฉืจ ืกืขืืืื ืืก ืคึฟืึทืจ ืื ืืขืกืืื ืืืฉืึทื (SQL Server 2014 ืืืืฃ ืืขืจ ืืึทืืขืืึธืก ืืึทืฉืื).
- ืืืืึทืืขืจ, ืฉืืขืื ืื ืืึทืคึผืื ื. ืึทืืข ืืืื ืืืื ืืืืกืืขืงืืืื ื ืื ืืืืื ืืืืขื ืขื ืึทืืืืฉืขืงืฅ (ืืืฉื, ืงืืงื ืืึธื ื ืื ืืึทืจืคึฟื ืฆื ืืืื ืืืืกืืขืงืืืื). ืืื ื ืึธื ืึธืคึผืฆืืขืก, ืืืืกืงืืืึทืื "ืืขืจืืืืื ืึทืจืืึทื ืืืืื ืืื ืืืืขื ืืืืขื ืฉืคืืืื"ืืืื ืึทืืึท ืืขื ืขื ืืขื ืืฆื.
Warning: ืืืื, ืืืขื ืืจืืื ื ืฆื ืืืืกืงืืืึทืื ืขืืืขืืข ืืืฉื ืืื ืฉืืขืื ืืืืขืจ ืคืึทืจืืึธื "ืืขืจืืืืื ืึทืจืืึทื ืืืืื ืืื ืืืืขื ืืืืขื ืฉืคืืืื" ืื ืคืึทืจืืึธื ืืื ืฉืืื ืืึทืฉืืืื ืคึฟืึทืจ ืืืึท ืืื ืืกืืขืจ ืืืื ืขืจ ืคืื ืื ืืืืกืืขืงืืืื ืืืฉื, ืืขืจ ืืืึทืืึธื ืืืขื ืึธื ืืืืึทืื ืึทื ืื ืคืึทืจืืึธื ืืื ืฉืืื ืืึทืฉืืืื ืคึฟืึทืจ ืึทืืข ืื ืืืืกืืขืงืืืื ืืืฉื. ืืขืจ ืคืึทืงื ืงืขื ืืืื ืงืึทื ืคืืืืื ื ืืื ืคืืจื ืฆื ืืืืืจืืืฉืึทื ืขืจืจืึธืจืก. - ืืืจ ืึธื ืืืืื ืื ืึทืจืืืขืจืคืืจื.
- ืจืขืกืืึธืจืื ื ืงืึทื ืกืืจืืื ืฅ ืงืึธื ืืจืึธืืืจืื ื:
EXEC sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT all'
ืืืื ืงืืื ืขืจืจืึธืจืก ืคืึทืื, ืืืจ ืงืึธื ืืจืึธืืืจื ืื ืกืขืืืื ืืก, ืืืกืืขืงื ืื ืืึทืืึทืืืืก ืืืฉืืคื ืืื ืขืจืจืึธืจืก, ืฉืืึทืขื-ืฉืึทืคึฟื ืขืก ืคืื ืื ืฉืจืืคื, ืืึทืื ืงืขืจืขืงืฉืึทื ื ืืื ืืืืขืจืืืจื ืื ืืึทืื ืึทืจืืืขืจืคืืจื.
ืกืึธืฃ
ืืขื ืึทืจืืขื ืืื ืืึทื ืฅ ืืขืืื ืืื ืึทืงืขืจื ืืืืื ืืืืึทื ืคืื ืื ืืืืื ืืืืืืืืฉืึทื ื. ืื ืืขืจืกื ืคึผืจืึธืกื ืืืืืื ื ืืื ืฆื ืึทืคึผืืจืืื SQL ืกืขืจืืืืจืขืจ ืึธืืขืจ ืคืึทืจืืื ืื ืฆื ืึท ืืืืึทื ืกืขืจืืืขืจ ืืืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืึทืจืงืึทืืขืงืืฉืขืจ ืึทืืึทืื ืขืก. ืึธืืขืจ, ืงืืื ืืืื ืขืจ ืืื ืืืืื ืคืื ืืขืืึทื ืงืึธื ืืื ืงืจืื ืืขื ื ืคืื ื ืขืืขื-ืงืืืึทืืืืขื ืึทื ืืืืืงืืื ื. ืืื ืืึธืคึฟื ืึทื ืืืจ ืืืขื ื ืืฉื ืืึทืจืคึฟื ืืขื ืืืืขื, ืึธืืขืจ ืืืื ืืืจ ื ืึธื ืืึทืจืคึฟื ืขืก, ืขืก ืืืขื ืืขืืคื ืฉืคึผืึธืจื ืึท ืคึผืืึทืฅ ืคืื ืฆืืื ืืื ื ืขืจืืืขืก. ืืื ืง ืืืจ ืคึฟืึทืจ ืืืื ืืคืืขืจืงืืึทืืงืืึทื!
ืจืฉืืื ืคืื ืืงืืจืื ืืขื ืืฆื
ืืื ืืึธื ืืื ืืึทื ืืืขื ืืื FK ืงืึทื ืกืืจืืื ืฅ ืืืขื ืืืคึผืึธืจืืื ื ืืึทืื ื ืืฆื DTS ืืืคึผืึธืจื / ืขืงืกืคึผืึธืจื ืืืืืขืจื? ืืขืจ ืืืึทื "ืงืึธืืึทื 2" ืงืขื ืขื ื ืื ืืืื ืคึผืจืึทืกืขืกื ืืืืึทื ืืขืจ ืืื ืืืื ืงืึธื ืืืึทื (65001 ืืื 1252) ืืขื ืขื ืกืคึผืขืกืืคืืขื ืคึฟืึทืจ ืืื. ืืื ืงืขื ืขื ืืื ืคืึทืจืืื ืื ืฆื SQLServer ืคืืืกื ืืืง ืืืืฃ VirtualBox ืคึฟืื ืืืื ืืึทืืขืืึธืก ืืึทืงืืึธืึธืง. SQL SERVER - ืืขืื ืืืืขื ืืืืขื ืึทืจืืึทื ืืืืื - ืืืคึผืึธืจื ืขืงืกืคึผืขืจื ืืืืืขืจื ืืจืึธืืืืขืฉืึธืึธืืื ื ืืืงืจืึธืกืึธืคื ืกืงื ืกืขืจืืืืจืขืจ ืืขืืช 18456, ืืึธืืื ื ืื ืึทื ืืขืจืฉ ืคึฟืึทืจ ืืึทื ืืฆืขืจ
ืืงืืจ: www.habr.com