2016-09-01 2 views
-1
Create table Login_User 
(
    IDnum int foreign key references Contacts(ID), 
    Username varchar (50), 
    Password varchar (50), 
    SecretQ varchar(50), 
    SecretA varchar (50), 
) 

Create procedure sp_create 

    @Username varchar (50), 
    @Password varchar (50), 
    @SecretQ varchar(50), 
    @SecretA varchar (50) 

as 

insert into Login_User 

Values (@Username, @Password, @SecretQ, @SecretA) 

Der Fehler übereinstimmen, wenn ich die gespeicherte ProzedurSQL-Fehler Spaltenname oder Anzahl der übergebenen Werte nicht Tabellendefinition

Msg 213, Level 16, State 1, Procedure sp_create, Line 10
Insert Error: Column name or number of supplied values does not match table definition.

Antwort

0

Da IDnum die Fremdschlüsselspalte ist, kann sie nicht NULL oder leer sein, bis Sie die Werte NULL in der TabellehabenSpalte.

Ihre Abfrage kann funktionieren, wenn IDnum der automatische Inkrementwert ist, andernfalls müssen Sie den IDnum Wert übergeben und in der Tabelle speichern.

So sollte Ihre eigentliche Abfrage sein:

insert into Login_User (IDnum, Username, Password, SecretQ , SecretA) 
Values (@IDNum, @Username, @Password, @SecretQ, @SecretA) 
0

Befehl erstellen Insert ausführen, indem alle die Spaltenliste bereitstellt

insert into Login_User (Username, password, secretq, secreta) 
Values (@Username, @Password, @SecretQ, @SecretA) 
+0

Dank bro. Es ist jetzt ausführbar –

0

Sie müssen auch umfassen IDNUM Spaltenwert in INSERT-Abfrage:

insert into Login_User (IDnum, Username, Password, SecretQ , SecretA) Values (@IDNum,@Username, @Password, @SecretQ, @SecretA) 

ODER

entfernen IDNUM von Einfügen Abfrage:

insert into Login_User (Username, Password, SecretQ , SecretA) Values (@Username, @Password, @SecretQ, @SecretA) 
Verwandte Themen