Laden...

Datenbankabfrage

Erstellt von Sonne123 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.456 Views
S
Sonne123 Themenstarter:in
72 Beiträge seit 2010
vor 13 Jahren
Datenbankabfrage

verwendetes Datenbanksystem: <SQL Server 2005>

Hallo,
ich erstelle in meiner Datenbank einen neuen User. Jedoch will ich natürlich vorher überprüfen, ob der User schon vorhanden ist, sonst würde es ja knallen.
Mit der Select-Anweisung funktioniert das doch nicht, da ich damit auf Tabellen zugreife. Ich hoffe dass ich mich jetzt nicht irre und es kann mir einer weiterhelfen kann.

S
902 Beiträge seit 2007
vor 13 Jahren

HAllo,

erzeugst du in einer eigenen Usertabelle einen neuen User, für ein eigenes Programm?
Oder meinst du direkt einen SqlUser??

mfg
serial

458 Beiträge seit 2007
vor 13 Jahren

Das sollte helfen. 1. Result.

be the hammer, not the nail!

S
Sonne123 Themenstarter:in
72 Beiträge seit 2010
vor 13 Jahren

nnee ich erstelle einen SQL User in meiner Datenbank. also mit

 command = new SqlCommand("create user "+name+" without login", con);
1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

Und mit einem anderen SQL-Commando kann man eben vorher feststellen, ob es bereits einen user mit diesem namen gibt.

Nobody is perfect. I'm sad, i'm not nobody 🙁

S
Sonne123 Themenstarter:in
72 Beiträge seit 2010
vor 13 Jahren

ja aberwie? also mit welchem SQL Command? Welchen SQL-Befehl gibts dafür??

F
10.010 Beiträge seit 2004
vor 13 Jahren

Steht doch im link von aequitas.

S
Sonne123 Themenstarter:in
72 Beiträge seit 2010
vor 13 Jahren

ich hab da noch ein Problem.
Die Abfrage "if exists(select ... from..)" funktioniert bei mir nicht richtig, da ich nicht von einer bestimmten Tabelle abfragen will ,sondern von einer Datenbank, also "if exists(select [user] from [datenbankname])", die Abfrage "if exists..." testet ja, ob Zeilen vorhanden sind. Ich möchte nur wissen, ob der User in der Datenbank schon vorhanden ist.

458 Beiträge seit 2007
vor 13 Jahren

Hast du den Thread aus dem Link ueberhaupt gelesen?
Da steht alles drin was du wissen musst.

be the hammer, not the nail!

S
Sonne123 Themenstarter:in
72 Beiträge seit 2010
vor 13 Jahren

ja habe ich. und zwar habe ich folgendes gemacht :

if not exists(select 'hans' from sys.database_principals)
begin
create user hans without login
end
else
print 'existiert schon'

obwohl der user hans nicht existiert, sagt er mir er existiert schon.

458 Beiträge seit 2007
vor 13 Jahren

if not exists(select 'hans' from sys.database_principals)
begin
create user hans without login
end
else
print 'existiert schon'

obwohl der user hans shcon existiert, sagt er mir er existiert schon.

Das stimmt ja auch?
Du selectest uebrigens fuer jeden User den Namen 'hans', wie waers wenn du das ganze mit einer WHERE-Klausel versiehst?
Lies dich erstmal ein bisschen in T-SQL ein, dann reden wir weiter.

be the hammer, not the nail!

S
Sonne123 Themenstarter:in
72 Beiträge seit 2010
vor 13 Jahren

nee sry hab nochmal den beitrag editiert.

1.378 Beiträge seit 2006
vor 13 Jahren

SQL Grundlagen:


if not exists(select * from sys.database_principals where name = 'hans')
....

Lg XXX

S
Sonne123 Themenstarter:in
72 Beiträge seit 2010
vor 13 Jahren

aaah mist, jetzt hats funktioniert. sowas dummes aber auch, habe das "where.." vergessen.

Vielen Dank!!!!