Från mySQL till MSSQL

Databaser & SQL

6 svar · 216 visningar · startad av nanne

Medlem sedan dec. 19991 749 inlägg
Trådstart#1

Jag konverterar ett forumsystem för en kund så att det ska funka med den nya ASP & MSSQL lösning de köpt *kräkas* Nåja... jag sitter här och skapar nya tabeller o så och eftersom detta är första gången jag överhuvudtaget sysslar med MSSQL så är kunskapen låg.

Jag har index som är INT(11) i mysql men jag kan inte få så stora ints i MSSQL utan det högsta jag lyckats få fram är BIGINT som är 8. Men jag vill ha 11!

Nödlösning är ju att göra kolumnen till char eller float men det är ju inte rätt..

Föresten... varför får TEXT 16 i längd i MSSQL?

Kan tilläggas att det är MSSQL 7 Enterprise som används...

Medlem sedan dec. 200012 464 inlägg
#2

Jag förstår inte riktigt det där. Om man skriver int(11) är inte 11 då bara en displaylängd? INT (och även BIGINT)i Mysql och Mssql har väl samma värdeförråd?

Att text får storleken 16 beror på att det som lagras i kolumnen är en pekare till det data som finns och den är 16 byte. (Det går att specificera att en del av innehållet lagras direkt i kolumnen.)

Medlem sedan dec. 19991 749 inlägg
#3

INT(11) ser det ut i mySQL. Men jag vill alltså ha ett talfält som kan vara 11 tecken stort.

Medlem sedan mars 20016 260 inlägg
#4

men det som står bakom är bara hur stor "säkerhet" (decimaler) man kan ha. Du kan fortfarande ha fler 11 tecken.

Medlem sedan dec. 200012 464 inlägg
#5

Nej, jag håller inte med. En int i MySQL kan inte innehålla 11 siffror (om deras dokumentation stämmer)

Mysql:

INT[(M)] [UNSIGNED] [ZEROFILL]
A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295.

SQL server:

bigint

Integer (whole number) data from -2^63 (-9223372036854775808) through 2^63-1 (9223372036854775807).

int

Integer (whole number) data from -2^31 (-2,147,483,648) through 2^31 - 1 (2,147,483,647).

8 i samband med bigint är inte antalet siffror man kan lagra utan antalet bytes man använder

Medlem sedan dec. 19991 749 inlägg
#6

Konstigt... för default när man gör ett int fält är ju 11 nåja.. det kanske är en gammal bugg...

Nu så försöker jag bara hitta en ersättare till mysql_insert_id() funktionen i PHP.

Medlem sedan dec. 200012 464 inlägg
#7

Det finns ingen färdig funktion men man kan få fram det med en select-sats

select @@identity
276 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)