Welcome to Sign in | Help
in Search

sqlcmd - optiuni

Last post 04-02-2009, 9:22 AM by hyghnet. 8 replies.
Sort Posts: Previous Next
  •  03-30-2009, 12:54 PM 6982

    sqlcmd - optiuni

    Salut tuturor

    vreau sa folosesc sqlcmd intr-un script, pentru a popula un fisier txt.

    Serverul este SQL -2005 local, iar autentificarea se face de windows.

    Am ceva de genul :

    @echo off

    sqlcmd -Q "use test select b.id_document from dosar a  inner join v_Document b on a.id_dosar=b.id_dosar where b.tipdocument like '%hot%'"

    pause

    Daca lansez sub aceasat forma nu imi afiseza nimic, 0(rows) afected - ca si cum nu ar exista nicio inregistrare care sa se incadreze, insa exista ca daca fac interogarea din Query imi apar informatiile.

    Daca lansez sub forma

    @echo off

    sqlcmd -Q "use test select b.id_document from dosar a  inner join v_Document b on a.id_dosar=b.id_dosar "

    pause

    Deci fara clauza WHERE informatiile apar.

    Acum nu stiu acesta comanda sqlcmd -Q nu poate include si clauze sau fac eu vreo greseala.

    Multumesc mult.

     

  •  03-30-2009, 1:48 PM 6984 in reply to 6982

    Re: sqlcmd - optiuni

    incearca si
    sqlcmd -Q "use test select b.id_document from dosar a  inner join v_Document b on a.id_dosar=b.id_dosar where b.tipdocument like '%' "

    sqlcmd stie clause...


    obs 1. vezi si cum ai quoted identifiers
    SET QUOTED_IDENTIFIER { ON | OFF }
    http://msdn.microsoft.com/en-us/library/ms174393.aspx

    obs 2.
    scoate echo off ... sa vedem daca si ce mesaje mai da...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  03-31-2009, 7:32 AM 6994 in reply to 6984

    Re: sqlcmd - optiuni

    Am utilizat comanda astfel, fara echo off

    sqlcmd -Q "use test select b.id_document from dosar a  inner join v_Document b on a.id_dosar=b.id_dosar where b.tipdocument like '%' "

    si rezultatul a fost:

    C:\Documents and Settings\..>sqlcmd -Q "use test select b.id_document from dosar a  inner join v_Document b on a.id_dosar=b.id_dosar where b.tipdocument like '%' "

    Changed database context to 'test_tril'.
    id_document
    --------------------

    (0 rows affected)

    Lansata: sqlcmd -Q "use test select b.id_document from dosar a  inner join v_Document b on a.id_dosar=b.id_dosar"

    afiseaza

    Changed database context to 'test_tril'.
    id_document
    --------------------

    180

    190

    210

    ...

    (160 rows affected)

    Multumesc.

  •  03-31-2009, 9:42 AM 6997 in reply to 6994

    Re: sqlcmd - optiuni

    nu reusesc sa inteleg de ce ... mai incearca

    where cast(b.tipdocument as varchar) like '%'


    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  04-01-2009, 9:14 AM 7000 in reply to 6994

    Re: sqlcmd - optiuni

    Cumva tipdocument este null ? Încearcă:

    sqlcmd -Q "use test select b.id_document, b.tipdocument from dosar a inner join v_Document b on a.id_dosar=b.id_dosar"

    Răzvan
  •  04-02-2009, 8:38 AM 7004 in reply to 7000

    Re: sqlcmd - optiuni

    Cred ca am descoperit problema, insa nu stiu cum sa o rezolv.

    Problema este ca '%' este interpretat altfel in comand prompt ca pentru variabile locale.

    Ar trebui sa evit folosirea LIKE si a %.

    Sau daca are cineva idee ar fi super.

    Multumesc inca o data.

  •  04-02-2009, 8:46 AM 7005 in reply to 7004

    Re: sqlcmd - optiuni

    hyghnet:

    Cred ca am descoperit problema, insa nu stiu cum sa o rezolv.

    Problema este ca '%' este interpretat altfel in comand prompt ca pentru variabile locale.

    Ar trebui sa evit folosirea LIKE si a %.

    Sau daca are cineva idee ar fi super.

    Multumesc inca o data.


    Încearcă atunci să foloseşti codul ASCII 37 (%) şi funcţia CHAR:
    SELECT ... FROM ... WHERE camp LIKE 'a' + CHAR(37) + 'b' ...
  •  04-02-2009, 8:49 AM 7006 in reply to 7004

    Re: sqlcmd - optiuni

    incearca sa folosesti -i fisier si in fisier sa pui comanda.

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  04-02-2009, 9:22 AM 7007 in reply to 7006

    Re: sqlcmd - optiuni

    Revin, doram sa fac un singur fisier fara optiunea sqlcmd -i, cu fisier de intrare functioneaza.

    Insa am incercat asa:

    sqlcmd -Q "use test select b.id_document from dosar a  inner join v_Document b on a.id_dosar=b.id_dosar where b.tipdocument like '%%hot%%'"

    si a functionat, nu stiu cum dar asa merge.

     

View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems