Avatar billede testpilot_dk Nybegynder
12. november 2005 - 14:46 Der er 13 kommentarer og
1 løsning

Fejl i tabeller eller SQL

Hej

Jeg har følgende tabel definitioner

TABLE 1
# 6      Regelnr        [FOREIGN KEY(ifRegel)]
# 6      fraEjdTypeID           
# 6      tilEjdTypeID   

ifRegel
# 6      Regelnr         [PRIMARY KEY]
# 1      ejer
# 1      niveau
# 1      slettet
       
Så ønsker jeg at gører sådan at Regelnr i ifRegel er fremmednøgle i Table1.

Det gør jeg med følgende SQL
"ALTER TABLE Table1 ADD FOREIGN KEY (Regelnr) REFERENCES ifRegel;"

Så får jeg følgende Exception når jeg fyrer kaldet af

{"Relationer, der gennemtvinger referentiel integritet, kan ikke oprettes. Eksisterende data i tabellen \"Table1\" overholder ikke de referentielle integritetsregler, der er defineret i tabellen \"ifRegel\"." }

Hvad betyder denne expection
Avatar billede testpilot_dk Nybegynder
12. november 2005 - 15:22 #1
Linjerne skal forstås sådan her!

# 6      Regelnr        [FOREIGN KEY(ifRegel)]

6:      er længde af mit tekst felt
Regelnr: er navnet på feltet

[FOREIGN ] angiver det er en fremmednøgle til ifRegel
Avatar billede arne_v Ekspert
12. november 2005 - 16:13 #2
den siger at den ikke kan oprette den foreign key contstraint fordi der allerede er data
i tabellen som ikke overholder den
Avatar billede testpilot_dk Nybegynder
12. november 2005 - 16:48 #3
Dvs at jeg bør oprette mine foreign key før jeg indsætter data
Avatar billede arne_v Ekspert
12. november 2005 - 16:52 #4
det synes jeg da

(så får du fejl på indslt af de data som ikke overholder constraint)
Avatar billede testpilot_dk Nybegynder
12. november 2005 - 16:55 #5
det er jo rigtigt nok! men jeg forstår bare ikke hvorfor den brokker sig!

For man kan vel godt have 2 ens fremmednøgler i en tabel
Avatar billede arne_v Ekspert
12. november 2005 - 16:57 #6
ja - det er data i tabeller den brokker sig over - ikke tabel struktur
Avatar billede testpilot_dk Nybegynder
12. november 2005 - 16:59 #7
okay, godt så, så må du vel hellere sende et svar!

Har du et godt hvor jeg kan læse om Stored Procedures i Database!
Avatar billede arne_v Ekspert
12. november 2005 - 17:00 #8
ok

SQL syntax ? Brug fra C# ?
Avatar billede testpilot_dk Nybegynder
12. november 2005 - 17:02 #9
Jeg tænkte placereing af Stored procedures placeret i databasen, så databasen optimere en forespørgsel
Avatar billede arne_v Ekspert
12. november 2005 - 17:04 #10
det er jeg med på

men er det noget om hvordan man skriver stored procedures i SQL eller
noget om hvordan du bruger dem fra C# du leder efter ?
Avatar billede testpilot_dk Nybegynder
12. november 2005 - 17:05 #11
Det er nok noget med hvordan man benytter dem i C#
Avatar billede arne_v Ekspert
12. november 2005 - 17:09 #12
Avatar billede testpilot_dk Nybegynder
12. november 2005 - 17:09 #13
takker, det vil jeg kigge på!

Fortsat god dAg
Avatar billede arne_v Ekspert
12. november 2005 - 17:10 #14
et eksempel som kalder et par af de indbyggede SP's:

using System;
using System.Data;
using System.Data.SqlClient;

class MainClass
{
    public static void Main(string[] args)
    {
        SqlConnection con = new SqlConnection("server=ARNEPC2;Integrated Security=SSPI;database=master");
        con.Open();
        SqlCommand cmd = new SqlCommand("sp_databases", con);
        cmd.CommandType = CommandType.StoredProcedure;
        SqlDataReader rdr = cmd.ExecuteReader();
        while(rdr.Read()) {
            string dbnam = (string)rdr[0];
            Console.WriteLine("Database=" + dbnam);
            SqlConnection con2 = new SqlConnection("server=ARNEPC2;Integrated Security=SSPI;database=" + dbnam);
            con2.Open();
            SqlCommand cmd2 = new SqlCommand("sp_tables", con2);
            cmd2.CommandType = CommandType.StoredProcedure;
            cmd2.Parameters.Add("@table_type", "'TABLE'");
            SqlDataReader rdr2 = cmd2.ExecuteReader();
            while(rdr2.Read()) {
                string tblnam = (string)rdr2[2];
                Console.WriteLine(dbnam + " " + tblnam);
            }
            con2.Close();
        }
        con.Close();
    }
}
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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