kzen.dev
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
Ray Vega
Ray Vega
Question

Ako možno dočasne vypnúť obmedzenia cudzích kľúčov pomocou jazyka T-SQL?

Sú v serveri SQL Server podporované zakázané a povolené obmedzenia cudzích kľúčov? Alebo je mojou jedinou možnosťou zrušiť a potom znovu vytvoriť obmedzenia?

804 2008-10-01T18:33:43+00:00 3
Ray Vega
Ray Vega
Edited question 24 apríl 2015 в 4:10
Programovanie
sql-server
tsql
foreign-keys
constraints
This question has 1 odpoveď in English, to read them log in to your account.
Solution / Answer
 kristof
kristof
2 október 2008 в 8:50
2008-10-02T08:50:21+00:00
Viac na
Zdroj
Upraviť
#8530027

Ak chcete vypnúť všetky obmedzenia v databáze, stačí spustiť tento kód:

-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

Ak ich chcete opäť zapnúť, spustite: (výpis je samozrejme nepovinný a je to len výpis tabuliek)

-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

Považujem to za užitočné pri napĺňaní údajov z jednej databázy do druhej. Je to oveľa lepší prístup ako zrušenie obmedzení. Ako ste spomínali, hodí sa to pri vypustení všetkých údajov v databáze a ich opätovnom naplnení (povedzme v testovacom prostredí).

Ak odstraňujete všetky údaje, môže vám pomôcť toto riešenie.

Niekedy sa tiež hodí vypnúť aj všetky spúšťače, kompletné riešenie si môžete pozrieť tu.

 Community
Community
Edited answer 23 máj 2017 в 11:55
1090
0
Artificial intelligence to parse product page
productapi.dev
 ScottStonehouse
ScottStonehouse
1 október 2008 в 6:37
2008-10-01T18:37:38+00:00
Viac na
Zdroj
Upraviť
#8530026

http://www.sqljunkies.com/WebLog/roman/archive/2005/01/30/7037.aspx

-- Disable all table constraints

ALTER TABLE MyTable NOCHECK CONSTRAINT ALL

-- Enable all table constraints

ALTER TABLE MyTable WITH CHECK CHECK CONSTRAINT ALL

-- Disable single constraint

ALTER TABLE MyTable NOCHECK CONSTRAINT MyConstraint

-- Enable single constraint

ALTER TABLE MyTable WITH CHECK CHECK CONSTRAINT MyConstraint
 geographika
geographika
Edited answer 5 júl 2016 в 12:46
389
0
Artificial intelligence to parse product page
productapi.dev
 onedaywhen
onedaywhen
2 október 2008 в 11:01
2008-10-02T11:01:40+00:00
Viac na
Zdroj
Upraviť
#8530029

Štandard SQL-92 umožňuje deklarovať konštantu ako DEFERRABLE, aby mohla byť odložená (implicitne alebo explicitne) v rámci transakcie. Bohužiaľ, v SQL Serveri táto funkcia podľa normy SQL-92 stále chýba.

Podľa mňa je zmena obmedzenia na NOCHECK podobná zmene štruktúry databázy za behu - zrušenie obmedzenia určite je - a je to niečo, čomu sa treba vyhnúť (napr. používatelia vyžadujú zvýšené oprávnenia).

10
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
Inessa bu
Registered pred mesiacom
2
Denis Babushkin
Registered pred mesiacom
3
asakuno asakuno
Registered pred mesiacom
4
aldo salerno
Registered pred mesiacom
5
Анна Батицкая
Registered pred mesiacom
Artificial intelligence to parse product page
productapi.dev
DE
EL
ES
FR
ID
IT
JA
KO
NL
NO
PT
RO
RU
SK
SL
TR
ZH
© kzen.dev 2023
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora