Хатогиҳо бе шикастани амалро муайян кунед
МУНДАРИҶА ... ТАЪРИҚИ КРКТ дар Transact- SQL шартҳои хатогиро дар аризаҳои пойгоҳи додаҳо мефиристад ва амал мекунад. Ин изҳорот собит мекунад, ки коркарди хатогии SQL Server ва қисми муҳими таҳияи барномаҳои устувори базаи додаҳо мебошад. ДИҚҚАТ дар ҶСК «Системаи сервер» оғоз меёбад, ки дар соли 2008 оғоз ёфтааст, пойгоҳи додаи Azure SQL, анбори маълумотҳои Azure SQL ва Анбори иттилооти параллелӣ.
Тафсири TL
ИНТЕРНЕТ ба шумо имкон медиҳад, ки шумо ду изҳороти Transact-SQL-ро тасҳеҳ кунед: яке аз он, ки шумо мехоҳед «кӯшиш кунед» ва дигареро истифода баред, ки ҳар гуна хатогиҳое, ки метавонанд пайдо шаванд. Вақте ки SQL Server дар якҷоягӣ бо TRY ҷамъ меорад .... Агар эъломияи СМТ бомуваффақият иҷро карда шавад, SQL Server танҳо ҳаракат мекунад. Бо вуҷуди ин, агар эъломияи СМТ як хатогиеро эҷод кунад, SQL Server ба таври кофӣ хатогиҳоро хатт мекунад.
Дар ин формат ин формаро мегирад:
{$ S} {{sql_statement | statement_block} ҲАМЧУНИН ДАР БОЗОРИ МЕҲНАТ {{sql_statement | statement_block}] ИНТИХОБОТ [; ]ДИҚҚАТ!
Ин ба осонтар фаҳмидани истифодаи ин изҳорот тавассути истифодаи намуна аст. Тасаввур кунед, ки шумо идоракунандаи пойгоҳи захиравии инсонӣ ҳастед, ки дорои мизоҷе ном дорад, ки "Кормандон" ҳастанд, ки дорои маълумот дар бораи ҳар як корманд дар ташкилоти шумо мебошанд. Ин ҷадвал рақами аслии коргарро ҳамчун калиди ибтидоӣ истифода мебарад. Шумо метавонед кӯшиш кунед, ки ба зергурӯҳҳои зерин дохил шавед:
INSERT INTO staff (id, first_name, last_name, extension) VALUES (12497, 'Mike', 'Chapple', 4201)Дар ҳолатҳои муқаррарӣ, ин изҳорот ба сатри кормандон як қатор илова карда мешавад. Бо вуҷуди ин, агар коргар бо ID 12497 аллакай дар базаи маълумотҳо мавҷуд аст, ворид намудани сатр маҷрои асосии калидиро вайрон мекунад ва боиси хатогиҳои зерин мегардад:
MsG 2627, Level 14, Давлати 1, Қадами 1 Вайрон кардани калимаи PRIMARY Key 'PK_employee_id'. Тугмаҳои такрорӣ дар объектҳои "dbo.employees" дохил карда наметавонанд. Изҳорот қатъ карда шуд. Ҳангоме ки ин хатогӣ шуморо бо маълумоти ба шумо лозим аст, ки мушкилоти ҳалли худро талаб кунад, ду масъала бо он вуҷуд доранд. Аввалан, паёми таблиғотӣ аст. Он кодексҳои хато, рақами сатр ва дигар иттилоотро, ки ба ҳисоби миёна истифода намешаванд, дар бар мегирад. Дуюм, ва муҳимтар аз он, ин изҳоротро барои бекор кардан ва метавонад ба садамаҳои корӣ оварда расонад.
Алтернативӣ ин аст, ки ҳисобро дар як доллари ...
Дар ин мисол, ҳар гуна хатоҳое, ки рӯй медиҳанд, ба ҳар як корбар иҷро кардани фармони ва соати почтаи электронии hr@foo.com мебошанд. Хатогие, ки ба истифодабаранда нишон дода шудааст, дар поён оварда мешавад:
Хато: Бифиристии калидҳои PRIMARY Key 'PK_employee_id'. Тугмаҳои такрорӣ дар объектҳои "dbo.employees" дохил карда наметавонанд. Почтаи гурӯҳӣ.Муҳимтар аз ҳама, иҷрои иҷрошаванда одатан идома дорад, барномасозон ба таври ҷиддӣ ба хатогӣ роҳ медиҳанд. Истифодаи ТАК ... Тафсилоти CATCH тарзи зебо барои пешгирӣ ва ошкор кардани хатогиҳое, ки дар SQL Server-и барномаҳои пойгоҳи додаҳо рух медиҳанд.
More омӯзиш
Агар шумо хоҳед, ки дар бораи забони Системаи дархостшудаи забонро бештар фаҳмед, хонед.