Programim dhe zhvillim, javascript, python, php, html

Përdorimi i sp_executesql pa kthimin e grupeve të rreshtave

Në një procedurë dyqani unë jam duke ndërtuar deklaratë dinamike SQL e cila ekzekutohet duke përdorur procedurën sp_executesql.

Deklarata dinamike SQL mund të jetë një procedurë ruajtëse, që:

  • mos e kthe grupin e rreshtave
  • ktheni një grup rreshti
  • ktheni grupe të shumëfishta rreshtash

Vetë procedura fillestare e ruajtjes kthen grupe të tjera rreshtash. Unë dua t'i kthej vetëm ato, dhe të mos kthej grupet e rreshtave nga procedura e brendshme.

Në përgjithësi, dua të detyroj deklaratën e mëposhtme të mos kthejë asgjë:

DECLARE @DynamicSQLStatement NVARCHAR(MAX)

SET @DynamicSQLStatement = N'SELECT 1 SELECT 2 SELECT 3 SELECT 4 SELECT 5'

EXEC sp_executesql @DynamicSQLStatement

A ka ndonjë mënyrë për ta bërë këtë?


  • Nëse duhet të përdorni Dynamic SQL dhe ai po kthen një, asnjë ose shumë grupe rezultatesh dhe ju jep grupet e pritshme të rezultateve, pse dëshironi ta ndryshoni atë????? 21.11.2013
  • Sepse Dynamic SQL duhet të bëjë diçka si regjistrimet INSERT, por nuk kam nevojë të shfaq mesazhet e tij të brendshme si All records are inserted ose List with inserted records 21.11.2013
  • Oh, nëse bëhet fjalë vetëm për të shtypur mesazhet n row(s) affected, atëherë SET NOCOUNT ON është miku juaj. 21.11.2013
  • Jo, jo ky mesazh. Imazhoni një procedurë që fut disa regjistrime në një tabelë dhe kthen dy grupe rreshtash - një me statusin 'OK'/'Nuk është në rregull' dhe e dyta që rendit të gjitha rreshtat e futur. Nuk dua ta shfaq këtë informacion pasi procedura fillestare po kthen grupet e rreshtave. 21.11.2013

Përgjigjet:


1

Unë mendoj se ju mund të shkulni Procedurat e Dyqanit tuaj duke bërë diçka të tillë.

CREATE PROCEDURE usp_StopMessageProc
@StopMsg bit = 0
AS
BEGIN
 SET NOCOUNT ON;

    DECLARE @Sql VARCHAR(MAX);

    SET @Sql = '';

    SET @Sql = 'SELECT Column1, Column2, Column3....  ';

    IF @StopMsg = 1
         SET @Sql = @Sql + 'INTO #TempDeleteMe';

    SET @Sql = @Sql +     
    'FROM dbo.SomeTable ';

    EXEC(@Sql);
END
GO

Duke defualizuar, proc-i juaj do të bëjë gjithçka që bën më mirë, por kur @StopMsg vendoset në 1, ai shtyp mesazhet e kthimit/ grupet e rezultateve.

21.11.2013
  • A duhet të funksionojë kjo nëse procedura e dyqanit kthen grupe të shumëfishta rreshtash? 21.11.2013
  • Epo, duhet të futeni në përkufizimin Proc dhe të bëni si më sipër për grupe të shumëfishta rezultatesh nëse @StopMsg = 1 dhe proc mund të kthejë grupe të shumta rezultatesh, kudo që ka një deklaratë Select në proc tuaj, thjesht SELECT * INTO #Temp tabelën dhe mos telefononi kurrë tabela Temp në proc. 21.11.2013
  • Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..