首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据清除删除语句格式

数据清除删除语句格式
EN

Stack Overflow用户
提问于 2017-11-20 05:46:38
回答 1查看 236关注 0票数 0

我只是在写一个存储过程,在某一点上我被卡住了。

基本上,我的存储过程如下所示:

代码语言:javascript
复制
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)

我将在运行时获得我的参数,但实际问题是,我想在获得应用程序编号之前形成我的delete语句,我想以这样的方式形成我的delete语句,当我将获得我的应用程序编号时,我将从表中获取所有的delete语句,并用实际的应用程序编号替换@ApplicationNumber,然后从数据库中删除记录。

因此,基本上我希望以应用程序编号作为模板来形成delete语句,并在运行时删除记录。

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2017-11-26 22:19:22

我已经找到了清除数据库的解决方案。为了处理运行时GUID的情况,我从存储过程发布了存储过程。

代码语言:javascript
复制
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语句,然后发布存储过程。在运行时,当它命中我发布的存储过程时,我将首先在临时表中找到所有guids,然后开始删除。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47382331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档