Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SQL (Server 2008) Inkrementacja od danej liczby
szuki
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 21.09.2012

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


Witam, mam mały problem.

Napisałem skrypt, który pobiera mi z bazy MS SQL dane rekordy, o określonym warunku, po czym chciałbym dodać je do pewnej tabeli. Wszystko jest ok, ale nie wiem jak rozwiązać sprawę inkrementacji. Domyślnie tabela nie ma ustawionego autoInc, no i tak musi zostać. Chciałbym aby pierwszy dodany rekord miał id 1002, a później adekwatnie o +1.

  1. $tsql = "SELECT [au_Id] FROM [ebalDB].[dbo].[au__Auction] WHERE [au_State] = 0";
  2.  
  3. $stmt = sqlsrv_query( $conn, $tsql);
  4. if( $stmt === false )
  5. {
  6. echo "Błąd w zapytaniu.</br>";
  7. die( print_r( sqlsrv_errors(), true));
  8. }
  9. echo "<table border='0' cellpadding='10'> ";
  10. while ($row = sqlsrv_fetch_array($stmt)) {
  11.  
  12. echo "<tr><td>" . $row[0] . "</td></tr>";
  13.  
  14. $tsql1 = "INSERT INTO [ebalDB].[dbo].[au_CategorySpecific]
  15. ([as_Id]
  16. ,[as_AuctionId]
  17. ,[as_FieldId]
  18. ,[as_vint]
  19. ,[as_vmoney]
  20. ,[as_vdatetime]
  21. ,[as_vvarchar])
  22. VALUES
  23. (?,?,?,?,?,?,?);";
  24.  
  25. $params = array($row[0],$row[0],19933,1,Null,Null,Null);
  26.  
  27. $stmt1 = sqlsrv_query($conn, $tsql1, $params);
  28. if( $stmt1 === false )
  29. {
  30. echo "Coś poszło nie tak w dodawaniu rekordu";
  31. die( print_r( sqlsrv_errors(), true));
  32. }
  33.  
  34. }
  35. echo "</table> ";


Co w takim przypadku zrobić? Przed dodaniem mam pobierać największe id, a następnie zapisać do zmiennej (następnie +1), a dopiero później wynik tego podać w insercie? Czy może są lepsze sposoby?

Pozdrawiam i z góry dziękuję za wszelkie sugestie.

Ten post edytował szuki 22.10.2012, 23:02:47
Go to the top of the page
+Quote Post

Posty w temacie


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: 22.08.2025 - 17:28