Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ALTER TABLE w CREATE PROCEDURE, hilfeme
temat
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.12.2005

Ostrzeżenie: (0%)
-----


Muszę wyczyścić tabelę [Pozostawiając przy tym wartość pId w innych tabelach]

1. Wywalam FK_Publishers_Books
2. Czyszczę to świństwo
3. Wstawiam FK_Publishers_Books

Oczywiście wiem że tak nie należy robić (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !

Wiem że w MySQL było coś w stylu EXEC IMMEDIATE '[treść sql-a]'

  1. -- PUBLISHERS
  2. ALTER PROCEDURE clearPublishers
  3. AS BEGIN TRANSACTION
  4. ALTER TABLE dbo.Books
  5. DROP CONSTRAINT FK_Publishers_Books
  6.  
  7. TRUNCATE TABLE dbo.Publishers
  8.  
  9. ALTER TABLE dbo.Books
  10. ADD CONSTRAINT FK_Publishers_Books
  11. FOREIGN KEY (pId)
  12. REFERENCES dbo.Publishers (pId)
  13. ON UPDATE CASCADE
  14. COMMIT TRANSACTION
  15. GO


Znacie jakieś obejście ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Zbłąkany
post
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


Nie wiem czy nie pomyliłeś czasem for, bo temat jest na Microsoft SQL Server, a w poście piszesz o MySQL (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Na całe szczęście ta komenda:
  1. TRUNCATE TABLE nazwa_tabeli;

jest taka sama dla obu tych systemów bazodanowych (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) . Usuwanie danych z tabeli jest natychmiastowe i nieodwołalne, nie może być odwołane przez ROLLBACK, wyjątkiem jest MySQL, który pozwala na odzyskanie danych poprzez ROLLBACK dla tabel typu InnoDB (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:54