Avatar billede webster Nybegynder
13. oktober 2001 - 16:51 Der er 5 kommentarer og
1 løsning

En masse MS Sql server spørgsmål

Davs

Jeg er begyndt at lege lidt med ms sql server og har lige et par spørgsmål. Jeg deler pointene ud til dem som svarer:

- Hvis jeg insætter en post i en tabel, hvor den ene kolonne er af typen identity, hvordan kan jeg så få den tildelte ID på den sidste post?
- Hvordan kan jeg se hvilke tabeller der er oprettet?
- Hvordan kan jeg se hvilke kolonner der er i de enkelte tabeller?
- Hvordan gør jeg sådan at jeg kan lave en INSERT INTO tabel (ID, blabla) values (325, \'hehe\') hvor ID er et identity felt?

Flere point gives hvis det er nødvendigt.

På forhånd tak
Avatar billede cht Nybegynder
13. oktober 2001 - 17:57 #1
Første spørgsmål, for at den tildelte ID på den sidste post, kan du jo bare finde den id som er størst.

Andet og tredje spørgsmål. Til at klare disse opgaver har jeg lavet et lille script, som du kan hente på denne side:

http://cht.dk/down/mySQL_admin.asp

Det er dog ikke helt færdig udviklet, men det kan det du spørger efter og en del mere.

Fjerde spørgsmål. Du kan ikke selv vælge hvilken værdi der skal står i et identity felt, den vil altid give numre i numerisk rækkefølge.
Avatar billede webster Nybegynder
13. oktober 2001 - 18:54 #2
hmm serveren siger at man kan bare man sætter et flag til on. paster lige fejlmeddellelsen når jeg kommer hjem.
Avatar billede webster Nybegynder
14. oktober 2001 - 16:03 #3
dit svar angående scriptet er godt nok, men jeg ved der findes en metode til at få den sidste id og det er den jeg har brug for :-)
Avatar billede mortrr Praktikant
18. oktober 2001 - 00:09 #4
cmdTemp.CommandText=\"INSERT INTO MinTabel (Felt1, Felt2) VALUES (1,2)\";
dcSQL.BeginTrans();
cmdTemp.Execute();
cmdTemp.CommandText = \"SELECT @@IDENTITY AS IDInput\";
rsSet.Open(cmdTemp);
newID = new Number(rsSet(\"IDInput\"));
rsSet.Close();
dcSQL.CommitTrans();

- Morten
Avatar billede cyberinet.com Nybegynder
20. oktober 2001 - 17:08 #5
Nu ved jeg ikke hvorfor du vil have det sidste id, men følgende kode henter sidste id p.g.a at der er skrevet \'ORDER BY id desc\' desc gør det bagfra.

<%
Option Explicit

Dim Conn

Set Conn = Server.CreateObject(\"ADODB.Connection\")
conn.Open \"DBQ=\"&(Server.MapPath(\".\")) &\"\\maillist.mdb; DefaultDir=DBQ=\"&(Server.MapPath(\".\")) &\"\\;Driver={Microsoft Access Driver (*.mdb)};\"

Dim Sql, Record

Sql = \"SELECT * FROM mailliste ORDER BY id desc\"
Set Record =  Conn.Execute(Sql)

Response.Write Record(\"id\")
%>

Men hvis det er for at tælle antallet af poster er det følgende kode du skal bruge. (bare lige i tilfælde af at det var derfor du skulle have det sidste id man ved jo aldrig!)

<%
Option Explicit

Dim Conn

Set Conn = Server.CreateObject(\"ADODB.Connection\")
conn.Open \"DBQ=\"&(Server.MapPath(\".\")) &\"\\maillist.mdb; DefaultDir=DBQ=\"&(Server.MapPath(\".\")) &\"\\;Driver={Microsoft Access Driver (*.mdb)};\"

Dim Sql, Record, Ialt

Sql = \"Select count(*) as Found from mailliste\"
Set Record =  Conn.Execute(Sql)

Ialt = Record(\"found\")

Response.Write Ialt
%>

- Stefan
Avatar billede webster Nybegynder
21. oktober 2001 - 00:53 #6
jeg skal havde id\'en for at sende den til en bruger, men har fundet en løsning på det nu. Det med at vælge sidste id duer ikke da der bliver oprettet nogen og 20 poster i sekundet når der er travlt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester