Как динамически УДАЛИТЬ на SQL Сервер? - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь сделать что-то подобное, мне нужно динамически удалять строки из таблицы. Я ничего не знаю о структуре этой таблицы заранее, поэтому я пытаюсь все решить динамически.

Следующий фрагмент кода показывает, что я пытаюсь сделать, но я знаю, что исключение не работает с звездочка. У меня нет идентификаторов или около того, чтобы удалить элемент, я просто хочу, чтобы элемент из таблицы удаления был удален в основной таблице. Есть ли способ сделать это?

Большое спасибо

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


...