AMcoder - javascript, python, java, html, php, sql

Միացեք մի քանի DB-ների տարբեր սերվերներից

Ես ունեմ մի քանի DB-եր տարբեր սերվերների վրա և ուզում եմ որոշակի տեղեկատվություն վերցնել աղյուսակից (օրինակ, Օգտվողը, այս աղյուսակը բոլոր DB-ների վրա է): Այսպիսով, ես ավելացնում եմ բոլոր սերվերները և DB-ները կուրսորի վրա և այնուհետև գործարկում եմ այս սցենարը.

BEGIN

fetch next from CursorData into @DBName,@DBServer

set @cmd=':Connect ' + @DBServer+ CHAR(10) + CHAR(13)+ 'use ['+@DBName+'] select * from [UserAccount] where userid='''+@UserID+'''' + CHAR(10) + CHAR(13)+  'GO'

  print @cmd

exec sp_executeSQL @cmd

END

և ես ունեմ հետևյալ սխալը.

(1 row(s) affected)

:Connect DBServer
use [DBName] select * from [UserAccount] where userid='myuserid'
GO

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ':'.

Msg 911, Level 16, State 1, Line 2
Database 'DBName' does not exist. Make sure that the name is entered correctly.

Սերվերի միջև փոխարկվելու համար ես օգտագործել եմ sqlcmd ռեժիմը, բայց չգիտեմ, արդյոք աշխատում է, երբ այն դնում եմ տող, այնուհետև կատարում տող:

Եթե ​​ես գործադրեմ այս հրամանը sqlcmd ռեժիմում.

:Connect DBServer
use [DBName] select * from [UserAccount] where userid='myuserid'
GO

Եթե ​​որևէ մեկը գիտի, թե ինչ եմ բաց թողել, կամ գիտի այլ լուծում դրա համար:

17.10.2016

Պատասխանները:


1

Ստեղծեք Կապված սերվերի օբյեկտներ ձեր բոլոր տարբեր սերվերների համար, քաշեք բոլոր համապատասխանները տվյալները ձեր աշխատանքային սերվերի վրա, այնուհետև հարցրեք տվյալները այնտեղից:

Համաձայն վերևի հղման՝ դուք կարող եք դա անել SSMS-ում՝ ընդլայնելով Server Objects-ը Object Explorer-ում, աջ սեղմելով Linked Servers և այնուհետև լրացնելով համապատասխան կապի տվյալները:

Եթե ​​դրանք բոլորը հիմնված են SQL Server-ի վրա, կարող եք հարցումներ կատարել դրանց վրա [Server].[Database].[Schema].[Table] նշումով, իսկ եթե ոչ, դուք պետք է օգտագործեք OPENQUERY:

17.10.2016
  • Ես պետք է լուծում գտնեմ, բացի Կապված սերվերից: DBA-ն ցանկանում է գրել սցենար կամ նման բան՝ լուծելու համար: 17.10.2016
  • @SilviuS Ի՞նչն է սխալ կապված սերվերների հետ: Դուք ուսումնասիրե՞լ եք փոփոխականների օգտագործումը ձեր SQLCMD-ում. dba.stackexchange.com/questions/111339/? 17.10.2016
  • Ինձ համար այս լուծման մեջ վատ բան չկա: Ես ունեմ մի դեր, որը չի կարող ստեղծել Կապված սերվերի օբյեկտներ (ինձ թույլ չի տրվում) և դրա համար ես փորձում եմ այլ լուծում գտնել 17.10.2016
  • @SilviuS Արդյո՞ք ձեր SQLCMD-ը ճիշտ շարահյուսության մեջ է՝ sp_executesql-ի կողմից կատարվողի համար: Օրինակները, որոնք ես կարող եմ գտնել առցանց, ունեն N'''sqlcmd -E -S ' + @@servername + ' -w 1000 /Q "' + @query + '"''' կամ նման ձևաչափ, քանի որ, ինչպես երևում է, sp_executesql-ը չի գործում CMD Mode-ում: 17.10.2016
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..