У меня есть база данных с таблицами 2K +. Мне нужно проверить, используется ли строка в одной таблице любой другой таблицы (все отношения работают с идентификаторами). Только идея у меня естьПроверка ссылочной целостности SQL-сервера
BEGIN TRY
BEGIN TRANSACTION
DELETE dbo.LC147_PlanProracuna WHERE PlanProracunaID = 47
SELECT 1
ROLLBACK
END TRY
BEGIN CATCH
SELECT 0
END CATCH
Как проверить, если строка в таблице А используется в любой другой таблицы в базе данных, или (еще лучше), как делает SQL-сервер проверяет ссылочную целостность (и как я могу использовать такой же метод, если это возможно)?
Это не то, что им нужно, чтобы он показывал объекты. Мне нужно проверить, ссылается ли определенная строка в таблице A (у меня есть Identity/PK этой строки) в любой другой таблице. В моем примере мне нужно проверить, ссылается ли строка с ID = 47 –
Чтобы проверить это, вы можете сделать 'INNER JOIN' с другой таблицей, говорящей« от LC147_PlanProracuna t1 »join other_table t2 на t1.ID = t2.ID ' – Rahul
Чувак, с 2k таблицами в БД, который является длинным запросом, который может/будет вычисляться за несколько секунд. Во-вторых, с добавлением новых таблиц в БД, запрос будет устаревшим, и он не является жизнеспособным для хранимых процедур. Если нет «чистого и легкого» способа сделать это, плохо сделайте динамический запрос, который будет делать это с системными таблицами, а затем выполните код с идентификатором определенных строк/строк –