webForumDet fria alternativet

Från mySQL till MSSQL

6 svar · 201 visningar · startad av nanne

nanneMedlem sedan dec. 19991 749 inlägg
#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...

------------------
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1 decoce
GCM/MU/IT$>AT d--- s: a-- C++$ UL P-- L++>++++ E W+++>$ N o-- K- w O- !M V?
PS++ PE- Y+ PGP-@ t+ 5 X+++ R* tv- b++ DI D++ G+ e* h++ r++ y+**@
------END GEEK CODE BLOCK------

[Redigerat av nanne den 31 jul 2001]

LarsGMedlem 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.)

------------------
essentitia preter non sans multiplicandum

nanneMedlem 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.

------------------
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1 decoce
GCM/MU/IT$>AT d--- s: a-- C++$ UL P-- L++>++++ E W+++>$ N o-- K- w O- !M V?
PS++ PE- Y+ PGP-@ t+ 5 X+++ R* tv- b++ DI D++ G+ e* h++ r++ y+**@
------END GEEK CODE BLOCK------

JymdisMedlem 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.

------------------
-------------------
Andreas Lännerberg
Jag hör till dom som betalar mina räkningar med glädje, men dom vill hellre ha betalt i pengar.

LarsGMedlem 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

------------------
essentitia preter non sans multiplicandum

nanneMedlem 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.

------------------
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1 decoce
GCM/MU/IT$>AT d--- s: a-- C++$ UL P-- L++>++++ E W+++>$ N o-- K- w O- !M V?
PS++ PE- Y+ PGP-@ t+ 5 X+++ R* tv- b++ DI D++ G+ e* h++ r++ y+**@
------END GEEK CODE BLOCK------

LarsGMedlem 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

------------------
essentitia preter non sans multiplicandum

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)