数据清除删除语句形成



我只是写了一个存储过程,我在某个时候被严重陷入困境。

基本上我的存储过程看起来像这样:

CREATE PROCEDURE [dbo].[DELETEGUIDTESTNEW1]
     (@IpApplicationNumber NVARCHAR(50) = NULL)
AS
BEGIN
    DECLARE @ApplicationNumber NVARCHAR(20)
    SET @ApplicationNumber = (SELECT APPLICATIONNUMBER 
                              FROM CUSTOMERROLE  
                              WHERE CUSTOMERNUMBER = @IpCustomerNumber 
                                AND CUSTOMERVERSIONNUMBER = @IpCustomerVersion)
    -- In between I am doing business operation--------------------
    INSERT INTO dbo.DeleteTest1(Statements)
    VALUES ('Delete from '+@GuidTableName+' where ApplicationNumber =' + @ApplicationNumber)

我将在运行时获得我的参数,但是实际问题是我要在获取应用程序编号之前形成删除语句,并且我希望以这样的方式形成删除语句从表格替换为实际申请号,将@ApplicationNumber替换为数据库。

基本上,我想将删除语句与应用程序编号作为模板,并在运行时删除记录。

请帮助!

我找到了DB净化的解决方案。为了处理运行时指导情况,我从存储过程中发布了存储过程。

SELECT  @GuidPrimaryTableSpace = @GuidPrimaryTableSpace + DeleteGuidStatement + ';'+ CHAR(13) + CHAR(10)
FROM ##Purge_GuidForeignKeyTablePurgeStatements
SELECT @GuidForeignKeyTableSpace = @GuidForeignKeyTableSpace +'Insert Into @AddressRecordsToPurge (GuidValue, GuidColumn) ( '+ SelectGuidStatement +');'+ CHAR(13) + CHAR(10)     
FROM ##Purge_GuidPrimaryTablePurgeStatements 
SELECT @DeleteGuidStatementSpace = @DeleteGuidStatementSpace + DeleteGuidValueStatement + ';'+ CHAR(13) + CHAR(10)
FROM ##Purge_GuidTableNames
SET @createProcedureCmd = 'CREATE PROCEDURE MyProc' + ' (@ApplicationNum nvarchar(50),@CustomerNumber nvarchar(50),@CustomerVersionNumber nvarchar(50)) AS ' + ' BEGIN  '+    
   ' DECLARE @ApplicationNumber nvarchar(50); SET @ApplicationNumber = @ApplicationNum;
        DECLARE @AddressRecordsToPurge TABLE
        (
        RowID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
        GUIDValue Nvarchar(max),
        GUIDColumn Nvarchar(max)
        )'+ CHAR(13) + CHAR(10) + @GuidForeignKeyTableSpace +  @GuidPrimaryTableSpace + @DeleteGuidStatementSpace +' END'
        EXEC(@createProcedureCmd) 

因此,在这里,我首先要组成所有Select语句并发布存储过程。在运行时,它将达到我已发布的存储过程,我将首先在temp表中找到所有GUID,然后启动我的删除。

无论如何,谢谢您的所有输入。

最新更新