Я пытаюсь сделать что-то подобное, мне нужно динамически удалять строки из таблицы. Я ничего не знаю о структуре этой таблицы заранее, поэтому я пытаюсь все решить динамически.
Следующий фрагмент кода показывает, что я пытаюсь сделать, но я знаю, что исключение не работает с звездочка. У меня нет идентификаторов или около того, чтобы удалить элемент, я просто хочу, чтобы элемент из таблицы удаления был удален в основной таблице. Есть ли способ сделать это?
Большое спасибо
CREATE PROCEDURE sp_myprocedure
(@tablename NVARCHAR(256),
@changeId BIGINT)
AS
BEGIN
DECLARE @sqlstatement AS NVARCHAR(1000)
SELECT @sqlstatement = CONCAT('SELECT * INTO ', @tablename,
'_delete FROM ', @tablename,
' WHERE changeID = @changeId
SELECT * INTO ',@tablename,'_result_temp
FROM
(SELECT * FROM ', @tablename,
'_result
EXCEPT
SELECT * FROM ', @tablename, '_delete)
DROP TABLE ', @tablename, '_result
EXEC sp_rename ''',@tablename,'_result_temp'', ''',@tablename,'_result''
')
PRINT @sqlstatement
EXEC sp_executesql @sqlstatement
END
GO