ื”ืขื‘ืจืช ื ืชื•ื ื™ ื’ื™ื‘ื•ื™ ืžื’ืจืกื” ื—ื“ืฉื” ืฉืœ MS SQL Server ืœื’ืจืกื” ื™ืฉื ื” ื™ื•ืชืจ

ืคืจื”ื™ืกื˜ื•ืจื™ื”

ืคืขื ืื—ืช, ื›ื“ื™ ืœืฉื—ื–ืจ ื‘ืื’, ื”ื™ื™ืชื™ ืฆืจื™ืš ื’ื™ื‘ื•ื™ ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ ื”ื™ื™ืฆื•ืจ.

ืœื”ืคืชืขืชื™, ื ืชืงืœืชื™ ื‘ืžื’ื‘ืœื•ืช ื”ื‘ืื•ืช:

  1. ื’ื™ื‘ื•ื™ ืžืกื“ ื”ื ืชื•ื ื™ื ื ืขืฉื” ื‘ื’ืจืกื” SQL Server 2016 ื•ืœื ื”ื™ื” ืชื•ืื ืœืฉืœื™ SQL Server 2014.
  2. ื‘ืžื—ืฉื‘ ื”ืขื‘ื•ื“ื” ืฉืœื™, ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉื‘ื” ื”ืฉืชืžืฉืชื™ ื”ื™ื™ืชื” Windows 7ืื– ืœื ื™ื›ื•ืœืชื™ ืœืขื“ื›ืŸ ืฉืจืช SQL ืขื“ ื’ืจืกื” 2016
  3. ื”ืžื•ืฆืจ ื”ื ืชืžืš ื”ื™ื” ื—ืœืง ืžืžืขืจื›ืช ื’ื“ื•ืœื” ื™ื•ืชืจ ืขื ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื“ื•ืจ ืงื•ื“ื ื•ืฆืžื•ื“ื” ื•ื“ื™ื‘ืจ ื’ื ืขื ืžื•ืฆืจื™ื ื•ื‘ืกื™ืกื™ื ืื—ืจื™ื, ื›ืš ืฉื–ื” ื™ื›ื•ืœ ืœืงื—ืช ื”ืจื‘ื” ืžืื•ื“ ื–ืžืŸ ืœืคืจื•ืก ืื•ืชื• ืœืชื—ื ื” ืื—ืจืช.

ืœืื•ืจ ื”ืืžื•ืจ ืœืขื™ืœ, ื”ื’ืขืชื™ ืœืžืกืงื ื” ืฉื”ื’ื™ืข ื”ื–ืžืŸ ืœืงื‘ื™ื™ื ืฉืœ ืคืชืจื•ื ื•ืช ืœื ืกื˜ื ื“ืจื˜ื™ื™ื.

ืฉื—ื–ื•ืจ ื ืชื•ื ื™ื ืžื’ื™ื‘ื•ื™

ื‘ื—ืจืชื™ ืœื”ืฉืชืžืฉ ื‘ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช Oracle VM VirtualBox ืขื Windows 10 (ืชื•ื›ืœ ืœืฆืœื ืชืžื•ื ืช ื‘ื“ื™ืงื” ืขื‘ื•ืจ ื“ืคื“ืคืŸ Edge ืžื›ืืŸ). SQL Server 2016 ื”ื•ืชืงืŸ ืขืœ ื”ืžื—ืฉื‘ ื”ื•ื™ืจื˜ื•ืืœื™ ื•ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ ื”ื™ื™ืฉื•ืžื™ื ืฉื•ื—ื–ืจ ืžื”ื’ื™ื‘ื•ื™ (ื”ื•ืจืื”).

ื”ื’ื“ืจืช ื’ื™ืฉื” ืœ-SQL Server ื‘ืžื—ืฉื‘ ื•ื™ืจื˜ื•ืืœื™

ืœืื—ืจ ืžื›ืŸ, ื”ื™ื” ืฆื•ืจืš ืœื ืงื•ื˜ ื›ืžื” ืฆืขื“ื™ื ื›ื“ื™ ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื’ืฉืช ืœ-SQL Server ืžื‘ื—ื•ืฅ:

  1. ืขื‘ื•ืจ ื—ื•ืžืช ื”ืืฉ, ื”ื•ืกืฃ ื›ืœืœ ื›ื“ื™ ืœื“ืœื’ ืขืœ ื‘ืงืฉื•ืช ื™ืฆื™ืื” 1433.
  2. ืจืฆื•ื™ ืฉื”ื’ื™ืฉื” ืœืฉืจืช ืœื ืชืขื‘ื•ืจ ื“ืจืš ืื™ืžื•ืช Windows, ืืœื ื“ืจืš SQL ื‘ืืžืฆืขื•ืช ื›ื ื™ืกื” ื•ืกื™ืกืžื (ืงืœ ื™ื•ืชืจ ืœื”ื’ื“ื™ืจ ื’ื™ืฉื”). ืขื ื–ืืช, ื‘ืžืงืจื” ื–ื”, ืขืœื™ืš ืœื–ื›ื•ืจ ืœื”ืคืขื™ืœ ืื™ืžื•ืช SQL ื‘ืžืืคื™ื™ื ื™ SQL Server.
  3. ื‘ื”ื’ื“ืจื•ืช ืžืฉืชืžืฉ ื‘-SQL Server ื‘ืœืฉื•ื ื™ืช ืžื™ืคื•ื™ ืžืฉืชืžืฉื™ื ืฆื™ื™ืŸ ืืช ืชืคืงื™ื“ ื”ืžืฉืชืžืฉ ืขื‘ื•ืจ ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืžืฉื•ื—ื–ืจ db_securityadmin.

ื”ืขื‘ืจืช ื ืชื•ื ื™ื

ืœืžืขืฉื”, ื”ืขื‘ืจืช ื”ื ืชื•ื ื™ื ืขืฆืžื” ืžื•ืจื›ื‘ืช ืžืฉื ื™ ืฉืœื‘ื™ื:

  1. ื”ืขื‘ืจืช ืกื›ื™ืžืช ื ืชื•ื ื™ื (ื˜ื‘ืœืื•ืช, ืชืฆื•ื’ื•ืช, ื ื”ืœื™ื ืžืื•ื—ืกื ื™ื ื•ื›ื•')
  2. ื”ืขื‘ืจืช ื”ื ืชื•ื ื™ื ืขืฆืžื”

ื”ืขื‘ืจืช ืกื›ื™ืžืช ื ืชื•ื ื™ื

ืื ื• ืžื‘ืฆืขื™ื ืืช ื”ืคืขื•ืœื•ืช ื”ื‘ืื•ืช:

  1. ื‘ื—ืจ ืžืฉื™ืžื•ืช -> ืฆื•ืจ ืกืงืจื™ืคื˜ื™ื ืขื‘ื•ืจ ื‘ืกื™ืก ื ื™ื™ื“.
  2. ื‘ื—ืจ ืืช ื”ืื•ื‘ื™ื™ืงื˜ื™ื ืฉืืชื” ืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืื• ื”ืฉืืจ ืืช ืขืจืš ื‘ืจื™ืจืช ื”ืžื—ื“ืœ (ื‘ืžืงืจื” ื–ื”, ื™ื™ื•ื•ืฆืจื• ืกืงืจื™ืคื˜ื™ื ืขื‘ื•ืจ ื›ืœ ืื•ื‘ื™ื™ืงื˜ื™ ืžืกื“ ื”ื ืชื•ื ื™ื).
  3. ืฆื™ื™ืŸ ืืช ื”ื”ื’ื“ืจื•ืช ืœืฉืžื™ืจืช ื”ืกืงืจื™ืคื˜. ื”ื›ื™ ื ื•ื— ืœืฉืžื•ืจ ืืช ื”ืกืงืจื™ืคื˜ ื‘ืงื•ื‘ืฅ Unicode ื‘ื•ื“ื“. ืœืื—ืจ ืžื›ืŸ, ื‘ืžืงืจื” ืฉืœ ื›ื™ืฉืœื•ืŸ, ืื™ื ืš ืฆืจื™ืš ืœื—ื–ื•ืจ ืขืœ ื›ืœ ื”ืฉืœื‘ื™ื ืฉื•ื‘.

ืœืื—ืจ ืฉืžื™ืจืช ื”ืกืงืจื™ืคื˜, ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืื•ืชื• ื‘-SQL Server ื”ืžืงื•ืจื™ (ื’ืจืกื” ื™ืฉื ื”) ื›ื“ื™ ืœื™ืฆื•ืจ ืืช ื”ื‘ืกื™ืก ื”ื ื“ืจืฉ.

ะ’ะฝะธะผะฐะฝะธะต: ืœืื—ืจ ื‘ื™ืฆื•ืข ื”ืกืงืจื™ืคื˜ ื™ืฉ ืœื‘ื“ื•ืง ืืช ื”ื”ืชืืžื” ื‘ื™ืŸ ื”ื’ื“ืจื•ืช ืžืกื“ ื”ื ืชื•ื ื™ื ืžื”ื’ื™ื‘ื•ื™ ืœื‘ื™ืŸ ืžืกื“ ื”ื ืชื•ื ื™ื ืฉื ื•ืฆืจ ื‘ืกืงืจื™ืคื˜. ื‘ืžืงืจื” ืฉืœื™, ืœื ื”ื™ื™ืชื” ื”ื’ื“ืจื” ืฉืœ COLLATE ื‘ืชืกืจื™ื˜, ืžื” ืฉื”ื•ื‘ื™ืœ ืœื›ืฉืœ ื‘ืขืช ื”ืขื‘ืจืช ื ืชื•ื ื™ื ื•ืจื™ืงื•ื“ ืขื ื˜ืžื‘ื•ืจื™ืŸ ื›ื“ื™ ืœื™ืฆื•ืจ ืžื—ื“ืฉ ืืช ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ื”ืกืงืจื™ืคื˜ ื”ืžืฉืœื™ื.

ื”ืขื‘ืจืช ื ืชื•ื ื™ื

ืœืคื ื™ ื”ืขื‘ืจืช ื ืชื•ื ื™ื, ืขืœื™ืš ืœื”ืฉื‘ื™ืช ืืช ื‘ื“ื™ืงืช ื›ืœ ื”ื”ื’ื‘ืœื•ืช ืขืœ ืžืกื“ ื”ื ืชื•ื ื™ื:

EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'

ื”ืขื‘ืจืช ื”ื ืชื•ื ื™ื ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ืืฉืฃ ื™ื™ื‘ื•ื โ€‹โ€‹ื”ื ืชื•ื ื™ื ืžืฉื™ืžื•ืช -> ื™ื™ื‘ื•ื โ€‹โ€‹ื ืชื•ื ื™ื ื‘-SQL Server, ืฉื ื ืžืฆื ืžืกื“ ื”ื ืชื•ื ื™ื ืฉื ื•ืฆืจ ืขืœ ื™ื“ื™ ื”ืกืงืจื™ืคื˜:

  1. ืฆื™ื™ืŸ ืืช ื”ื’ื“ืจื•ืช ื”ื—ื™ื‘ื•ืจ ืœืžืงื•ืจ (SQL Server 2016 ื‘ืžื—ืฉื‘ ื•ื™ืจื˜ื•ืืœื™). ื”ืฉืชืžืฉืชื™ ื‘ืžืงื•ืจ ื ืชื•ื ื™ื ืœืงื•ื— ืžืงื•ืžื™ ืฉืœ ืฉืจืช SQL ื•ืื™ืžื•ืช SQL ื”ื "ืœ.
  2. ืฆื™ื™ืŸ ืืช ื”ื’ื“ืจื•ืช ื”ื—ื™ื‘ื•ืจ ืขื‘ื•ืจ ื”ื™ืขื“ (SQL Server 2014 ื‘ืžื—ืฉื‘ ื”ืžืืจื—).
  3. ืœืื—ืจ ืžื›ืŸ, ื”ื’ื“ืจ ืืช ื”ืžื™ืคื•ื™. ื™ืฉ ืœื‘ื—ื•ืจ ืืช ื›ื•ืœื ืœื ืœืงืจื™ืื” ื‘ืœื‘ื“ ืื•ื‘ื™ื™ืงื˜ื™ื (ืœื“ื•ื’ืžื”, ืื™ืŸ ืฆื•ืจืš ืœื‘ื—ื•ืจ ืชืฆื•ื’ื•ืช). ื›ืืคืฉืจื•ื™ื•ืช ื ื•ืกืคื•ืช, ื‘ื—ืจ "ืืคืฉืจ ื”ื›ื ืกืช ืขืžื•ื“ื•ืช ื–ื”ื•ืช"ืื ืžืฉืชืžืฉื™ื ื‘ื›ืืœื”.
    ะ’ะฝะธะผะฐะฝะธะต: ืื, ื›ืืฉืจ ืžื ืกื™ื ืœื‘ื—ื•ืจ ืžืกืคืจ ื˜ื‘ืœืื•ืช ื•ืœื”ื’ื“ื™ืจ ืืช ื”ืžืืคื™ื™ืŸ ืฉืœื”ื "ืืคืฉืจ ื”ื›ื ืกืช ืขืžื•ื“ื•ืช ื–ื”ื•ืช" ื”ืžืืคื™ื™ืŸ ื›ื‘ืจ ื”ื•ื’ื“ืจ ืขื‘ื•ืจ ืœืคื—ื•ืช ืื—ืช ืžื”ื˜ื‘ืœืื•ืช ืฉื ื‘ื—ืจื•, ืชื™ื‘ืช ื”ื“ื•-ืฉื™ื— ืชืฆื™ื™ืŸ ืฉื”ืžืืคื™ื™ืŸ ื›ื‘ืจ ื”ื•ื’ื“ืจ ืขื‘ื•ืจ ื›ืœ ื”ื˜ื‘ืœืื•ืช ืฉื ื‘ื—ืจื•. ืขื•ื‘ื“ื” ื–ื• ืขืœื•ืœื” ืœื‘ืœื‘ืœ ื•ืœื”ื•ื‘ื™ืœ ืœืฉื’ื™ืื•ืช ื”ื’ื™ืจื”.
  4. ืื ื—ื ื• ืžืชื—ื™ืœื™ื ืืช ื”ื”ืขื‘ืจื”.
  5. ืฉื—ื–ื•ืจ ื‘ื“ื™ืงืช ืื™ืœื•ืฆื™ื:
    EXEC sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT all'

ืื ืžืชืจื—ืฉื•ืช ืฉื’ื™ืื•ืช, ืื ื• ื‘ื•ื“ืงื™ื ืืช ื”ื”ื’ื“ืจื•ืช, ืžื•ื—ืงื™ื ืืช ืžืกื“ ื”ื ืชื•ื ื™ื ืฉื ื•ืฆืจ ืขื ืฉื’ื™ืื•ืช, ื™ื•ืฆืจื™ื ืื•ืชื• ืžื—ื“ืฉ ืžื”ืกืงืจื™ืคื˜, ืžื‘ืฆืขื™ื ืชื™ืงื•ื ื™ื ื•ื—ื•ื–ืจื™ื ืขืœ ื”ืขื‘ืจืช ื”ื ืชื•ื ื™ื.

ืžืกืงื ื”

ืžืฉื™ืžื” ื–ื• ื ื“ื™ืจื” ืœืžื“ื™ ื•ืžืชืจื—ืฉืช ืจืง ื‘ื’ืœืœ ื”ืžื’ื‘ืœื•ืช ืฉืœืขื™ืœ. ื”ืคืชืจื•ืŸ ื”ื ืคื•ืฅ ื‘ื™ื•ืชืจ ื”ื•ื ืฉื“ืจื•ื’ SQL Server ืื• ื—ื™ื‘ื•ืจ ืœืฉืจืช ืžืจื•ื—ืง ืื ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืืคืœื™ืงืฆื™ื” ืžืืคืฉืจืช ื–ืืช. ืขื ื–ืืช, ืืฃ ืื—ื“ ืœื ื—ืกื™ืŸ ืžืคื ื™ ืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื ื•ื™ื“ื™ื™ื ืขืงื•ืžื•ืช ืฉืœ ืคื™ืชื•ื— ื‘ืื™ื›ื•ืช ื™ืจื•ื“ื”. ืื ื™ ืžืงื•ื•ื” ืฉืœื ืชื–ื“ืงืง ืœื”ื•ืจืื” ื–ื•, ืื‘ืœ ืื ืืชื” ืขื“ื™ื™ืŸ ืฆืจื™ืš ืื•ืชื”, ื–ื” ื™ืขื–ื•ืจ ืœื—ืกื•ืš ื”ืจื‘ื” ื–ืžืŸ ื•ืขืฆื‘ื™ื. ืชื•ื“ื” ืœืš ืขืœ ืชืฉื•ืžืช ื”ืœื‘!

ืจืฉื™ืžืช ืžืงื•ืจื•ืช ื‘ืฉื™ืžื•ืฉ

ืžืงื•ืจ: www.habr.com