0
Я хочу вставить те значения, которые имеют версию null, а для версии null у меня нет статуса.Обновление хранимой процедуры
Я получаю все данные из datatable в тип таблицы процедур, а затем как я могу проверить, что входящие данные имеют версию null или нет?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[uspInsertFilterData]
@sqlDataTable SqlTableType READONLY
AS
BEGIN
IF (@sqlDataTable.Version IS NOT NULL OR @sqlDataTable.Version != '')
BEGIN
INSERT INTO FilterCombination (Version, HotFix, Resourcetype, Language)
(SELECT
t1.Product, t1.Version, t1.HotFix, t1.Resourcetype,
t1.Language
FROM
@sqlDataTable t1, Product_Version_Mapping t2
WHERE
t1.Product = t2.Product
AND t1.Version = t2.Version
AND t2.Status = 'Correct')
END
ELSE
BEGIN
INSERT INTO FilterCombination (Product, Version, HotFix, Resourcetype, Language)
(SELECT
t1.Product, t1.Version, t1.HotFix, t1.Resourcetype, t1.Language
FROM
@sqlDataTable t1, Product_Version_Mapping t2
WHERE
t1.Product = t2.Product);
END
END
Этот запрос не работает. Пожалуйста, помогите
Трудно понять, чего вы хотите. Также, пожалуйста, расширьте текст «не работает». Это ничего нам не говорит. –
Вы не указали свою проблему, но это подозрительно: '@sqlDataTable.Version не является NULL или @ sqlDataTable.Version! = '''. Я думаю, вам нужно 'AND' вместо' OR'. –
Кроме того, первая вставка перечисляет ** четыре ** столбца в имени таблицы 'INSERT INTO', но вы предоставляете ** FIVE ** столбцы в' SELECT' ..... –