Forum » Programiranje » sql-t stored procedure
sql-t stored procedure
detroit ::
Delam stored proceduro v njej declaram
DECLARE @table char(100)
SET @table = @db + '.' + @sde + '.' + @table_name
pa mi javi error prvič ko uporabim ta @table
Se komu kej sanja zakaj
DECLARE @table char(100)
SET @table = @db + '.' + @sde + '.' + @table_name
pa mi javi error prvič ko uporabim ta @table
Se komu kej sanja zakaj
Skero
detroit ::
javi mi Msg 1087 15, state 2, procedure Two_temps, Line 30
Must declare the table variable "@table".
ekola še kontekst kje se pojavi
CREATE PROCEDURE
Two_temps(@table_name char(50), @a int, @b int.....
...
...
AS
DECLARE @table varchar(100)
set @table = @a + '.' + @b+ '.' + @table_name
SELECT b.*, null as xxx
into #temp1
FROM @table b
LEFT
JOIN ....
pri : "FROM @table b " zajambra zgornji msg
Must declare the table variable "@table".
ekola še kontekst kje se pojavi
CREATE PROCEDURE
Two_temps(@table_name char(50), @a int, @b int.....
...
...
AS
DECLARE @table varchar(100)
set @table = @a + '.' + @b+ '.' + @table_name
SELECT b.*, null as xxx
into #temp1
FROM @table b
LEFT
JOIN ....
pri : "FROM @table b " zajambra zgornji msg
Skero
Zgodovina sprememb…
- spremenil: detroit ()
detroit ::
hja sj ich habe keine ahnung:)
Sploh ne vidim drugega načina, nism pa sploh prepričan, da bi to moralo delat
Sicer pa kako boš podal ime tabele, ki je variabilno.
Jst sm prvič v temu sql-t tko da hehe no offense
Sploh ne vidim drugega načina, nism pa sploh prepričan, da bi to moralo delat
Sicer pa kako boš podal ime tabele, ki je variabilno.
Jst sm prvič v temu sql-t tko da hehe no offense
Skero
Zgodovina sprememb…
- spremenil: detroit ()
lurker ::
Niti nisi pravilno deklariral table spremenjljivke, niti se stvar ne uporablja tako kot si si ti zamislil.
Poglej si dynamic SQL.
disclaimer: Samo predvidevam, ker se človeku očitno ne zdi vredno napisat kaj sploh hoče nardit.
Poglej si dynamic SQL.
disclaimer: Samo predvidevam, ker se človeku očitno ne zdi vredno napisat kaj sploh hoče nardit.
detroit ::
@lurker... no ja ne moreš bit kr tko strog. Sj probam sestavit nek stavek skupej pa vidiš, da je težko če ne veš o čem govoriš:)
Bom pogledal dynamic sql (kar sm že prejle sm nism videl rešitve o tem).
@jože ja exec sm uporabil že ...samo čitno narobe
Hvala obema za enkrat, mislim pa, da se bom še oglasil hehe
lep dan
Bom pogledal dynamic sql (kar sm že prejle sm nism videl rešitve o tem).
@jože ja exec sm uporabil že ...samo čitno narobe
Hvala obema za enkrat, mislim pa, da se bom še oglasil hehe
lep dan
Skero
tomaz_sres ::
Exec tkole ponucaš:
declare @SqlString varchar(1000)
set @SqlString='select * from #ime tabele#'
exec(@SqlString)
Če ti ne dela si se nekje zmotil v sestavljanju stringa.
declare @SqlString varchar(1000)
set @SqlString='select * from #ime tabele#'
exec(@SqlString)
Če ti ne dela si se nekje zmotil v sestavljanju stringa.
Lep pozdrav, Tomaž Sreš, http://www.sres.si
detroit ::
Hvala sem sicer že pogledal te zadeve in pohandlou. Se pa pojavla novo vprašanje
v teji stored proceduri imam dve temp tabeli (isti stoplci drugačni podatki)
Kako bi stolpce temp1 in temp2 comparal s kurzorji
Tole sm napisal (s pomočje neta itak:) ni pa niti videt da dela karkoli
Stvar je taka temp1 in temp2 imata stolpce X, Y, Naziv, Z.
Spodnji query primerja samo stolpec naziv, jaz bi rabil pa da gre čez vse stolpce in to je očitno možno s kurzorji, česar sem se lotil višje pa očitno ne deluje
p.s. kako se lahko rešim
teli apostrofi so mal suspicious
v teji stored proceduri imam dve temp tabeli (isti stoplci drugačni podatki)
Kako bi stolpce temp1 in temp2 comparal s kurzorji
DECLARE @Naziv varchar(50) DECLARE @sqlS nvarchar(MAX) DECLARE @sqlCursor nvarchar(max) DECLARE @table_N nvarchar(50) set @table_N = '''+@table_name+''' set @sqlS = 'DECLARE cur CURSOR FAST_FORWARD FOR SELECT column_name FROM information_schema.Columns where table_name = '+ @table_N exec sp_executesql @sqlS open cur FETCH cur INTO @Naziv WHILE @@FETCH_STATUS = 0 BEGIN SELECT @Naziv FETCH cur INTO @Naziv SET @sqlCursor = 'select ' + @Naziv + ' from ##temp1 where '+ @Naziv + ' not in (select ' + @Naziv + ' from ##temp2) union select '+ @Naziv + ' from ##temp2 where '+@Naziv + ' not in (select naziv from ##temp1);' exec sp_executesql @sqlCursor; --if @debug = 1 print @sqlCursor END CLOSE cur DEALLOCATE cur
Tole sm napisal (s pomočje neta itak:) ni pa niti videt da dela karkoli
Stvar je taka temp1 in temp2 imata stolpce X, Y, Naziv, Z.
Spodnji query primerja samo stolpec naziv, jaz bi rabil pa da gre čez vse stolpce in to je očitno možno s kurzorji, česar sem se lotil višje pa očitno ne deluje
select Naziv from ##temp1 where Naziv not in (select Naziv from ##temp2) union select Naziv from ##temp2 where Naziv not in (select naziv from ##temp1);
p.s. kako se lahko rešim
set @table_N = '''+@table_name+'''
teli apostrofi so mal suspicious
Skero
Zgodovina sprememb…
- spremenil: detroit ()
zavajon ::
1. Poskusi tako: set @table_N = ''''+@table_name+''''
2. Tisti SELECT @Naziv je po mojem odveč.
3. Drugi FETCH cur INTO @Naziv mora biti po tem, ko @Naziv uporabiš, torej pred END.
4. Upam, da si temp tabele skreiral v isti proceduri pred tem, kar si objavil.
5. Morda bi namesto ...not in (select... lahko uporabil LEFT JOIN
6. sp_executesql ti izvede SQL, ki pa ga nikjer ne uporabiš
2. Tisti SELECT @Naziv je po mojem odveč.
3. Drugi FETCH cur INTO @Naziv mora biti po tem, ko @Naziv uporabiš, torej pred END.
4. Upam, da si temp tabele skreiral v isti proceduri pred tem, kar si objavil.
5. Morda bi namesto ...not in (select... lahko uporabil LEFT JOIN
6. sp_executesql ti izvede SQL, ki pa ga nikjer ne uporabiš
detroit ::
Just my luck...nism imel dostopa do slotecha, tako, da sem sam porihtal hehe. Ampak vseeno hvala zavajon (ps. 3 me je jebal.....dolgo:)
Skero
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Preprost kratek SQL - pomočOddelek: Programiranje | 1024 (801) | Tody |
» | T-SQL FIRST / TOP / MAX...Oddelek: Programiranje | 1504 (1504) | frudi |
» | [Access, Sql] Pogoji pri poizvedbahOddelek: Programiranje | 1426 (1335) | appz |
» | [mySQL] Kaj je hitrejše?Oddelek: Programiranje | 1403 (1204) | dmok |
» | Kako do podatka v queryu iz VisualBasicScripta (VBA) v accessu?Oddelek: Programiranje | 2171 (2056) | Fim |