у меня есть SP, который INSERT INTO TBL_DOMAIN
из TBL_STAGING
, но сначала я хочу проверить таблицу TBL_STAGING
, чтобы убедиться, что таблица не пуста, прежде чем я усечь таблицу TBL_DOMAIN
, если таблица TBL_STAGING
получила более одной записи, то продолжить таблицу обрезания TBL_DOMAIN
, затем запустите сообщение INSERT, ELSE, скажем, что таблица TBL_STAGING
является ПУСТОЙ и выходит из SP. Моя цель - убедиться, что таблица TBL_DOMAIN
все еще имеет данные, даже старые. Я очень новый SQL, пожалуйста, помогите.Запись Графа в хранимых процедурах
CREATE PROCEDURE [dbo].[SP_INSERT_ALL_DOMAIN]
WITH EXECUTE AS CALLER
AS
BEGIN
BEGIN TRANSACTION NT_ALL_DOMAIN
INSERT INTO TBL_DOMAIN
(DOMAIN_NAME,
DISTINGUISHED_NAME,
EMAIL_ADDR_I)
SELECT DOMAIN_NAME,
DISTINGUISHED_NAME,
EMAIL_ADDR_I
FROM TBL_STAGING
Благодаря gonferr, могли бы вы объяснить эту линию ВЫБРАТЬ TOP 1 1 ОТ TBL_STAGING. Что делать, если таблица является обязательной? Мне нужно создать сообщение о том, что таблица TBL_STAGING пуста. – jp2631
вам просто нужно проверить, есть ли у таблицы данные, поэтому этот «ТОП 1 1» - это самый быстрый способ сделать это. SQL просто выбирает одну строку и не заботится о данных столбцов этой строки. Вы можете завершить это с помощью ... ELSE RETURN «Нет данных на столе», или вы можете выбросить RAISERROR – gonferr
Фактически, часть 'top 1' является избыточной при проверке' exist'. –