ďťż
 
[MSSQL] Stored procedure ďťż
 
[MSSQL] Stored procedure
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[MSSQL] Stored procedure



Kusyn - 09-12-2005 19:53
[MSSQL] Stored procedure
  Witam !

Czy istniej możliwość napisania procedury, która w obrębie tej samej tabeli
skopiuje rekord, lub grupę rekordów według zadanego kryterium. Tabela ma jedno z
pól typu identity.
Myślałem o:
INSERT INTO aa SELECT * FROM aa WHERE id=@IdPoz.
Napisałem coś podobnego, ale czepia się o pole identity.

Pozdrawiam
Wojtek





Piglet - 09-12-2005 19:53

  Użytkownik "Kusyn" <kusynNoSpam@poczta.onet.pl> napisał w wiadomości
news:dn44s5$dfh$1@news.onet.pl...
> Witam !
>
> Czy istniej możliwość napisania procedury, która w obrębie tej samej
tabeli
> skopiuje rekord, lub grupę rekordów według zadanego kryterium. Tabela ma
jedno z
> pól typu identity.
> Myślałem o:
> INSERT INTO aa SELECT * FROM aa WHERE id=@IdPoz.
> Napisałem coś podobnego, ale czepia się o pole identity.
>

Trzeba by "wylaczyc" pole identity z tej operacji, czyli:
INSERT INTO aa (pole1,pole2,pole-n)
SELECT pole1,pole2,pole_n FROM aa WHERE id=@IdPoz

--
Pozdrawiam
Piglet




Kusyn - 09-12-2005 19:53

  >> Czy istniej możliwość napisania procedury, która w obrębie tej samej
> tabeli
>> skopiuje rekord, lub grupę rekordów według zadanego kryterium. Tabela ma
> jedno z
>> pól typu identity.
>> Myślałem o:
>> INSERT INTO aa SELECT * FROM aa WHERE id=@IdPoz.
>> Napisałem coś podobnego, ale czepia się o pole identity.
>>
>
>
> Trzeba by "wylaczyc" pole identity z tej operacji, czyli:
> INSERT INTO aa (pole1,pole2,pole-n)
> SELECT pole1,pole2,pole_n FROM aa WHERE id=@IdPoz
>

No i sprawa się wyjaśniła. A ja chciałem iść na łatwiznę, aby nie wklepywać tych
wszystkich pól. :)
To zapytam dalej. Tabela w której kopiuję dany rekord jest powiązana z inną
tabelą relacją jeden do wielu. Czy kopiując rekord jak napisałeś powyżej
istnieje sposób na uzyskanie nowej wartości pola id (autoincrement) skopiowanego
rekordu i skopiowanie wszystkich rekordów w tabeli podrzędnej ?

Pozdrawiam
Wojtek




Piglet - 09-12-2005 19:53

 
>
> No i sprawa się wyjaśniła. A ja chciałem iść na łatwiznę, aby nie
wklepywać tych
> wszystkich pól. :)
> To zapytam dalej. Tabela w której kopiuję dany rekord jest powiązana z
inną
> tabelą relacją jeden do wielu. Czy kopiując rekord jak napisałeś powyżej
> istnieje sposób na uzyskanie nowej wartości pola id (autoincrement)
skopiowanego
> rekordu i skopiowanie wszystkich rekordów w tabeli podrzędnej ?
>

Wykorzystaj trigger AFTER INSERT i tabelę INSERTED

--
Pozdrawiam
Piglet





Jacek Czapla - 09-12-2005 19:53

 
zawsze można pobrać wartość klucza
select @@identity as klucz from ...

Poszukaj @@IDENTITY w BOL.

--
_*Jacek Czapla*_




Kusyn - 09-12-2005 19:53

  > zawsze można pobrać wartość klucza
> select @@identity as klucz from ...
>
> Poszukaj @@IDENTITY w BOL.
>
> --
> _*Jacek Czapla*_

Nie ukrywam, że dopiero startuje z MSSQL i chyba sprawa mnie przerośnie.
Niemniej dziękuję
za podpowiedzi. Spróbuję powalczyć.

Pozdrawiam
Wojtek




Bartek Dajewski - 09-12-2005 19:53

  Cześć.

Użytkownik "Kusyn" <kusynNoSpam@poczta.onet.pl> napisał w wiadomości
news:dn46sl$kql$1@news.onet.pl...
> >> Czy istniej możliwość napisania procedury, która w obrębie tej
samej
> > tabeli
> >> skopiuje rekord, lub grupę rekordów według zadanego kryterium. Tabela
ma
[...]
> To zapytam dalej. Tabela w której kopiuję dany rekord jest powiązana z
inną
> tabelą relacją jeden do wielu. Czy kopiując rekord jak napisałeś powyżej
> istnieje sposób na uzyskanie nowej wartości pola id (autoincrement)
skopiowanego
> rekordu i skopiowanie wszystkich rekordów w tabeli podrzędnej ?

A może prościej będzie skorzystać z SET IDENTITY_INSERT...

--
Pozdrawiam :-)
Bartek
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= [MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?= MSSQL Express czy Oracle Express [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [MSSQL 2000] =?ISO-8859-2?Q?wywo=B3anie_procesu_z_poziomu_?==?ISO-8859-2?Q?job=27a?= [MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?= Pobierananie danych z innej bazy danych w MSSQL Migracja MSSQL 2005 CTP na 2005 Express MSSQL , funkcja pobierajaca sama date (bez czasu) w funkcji
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • czterowers.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com