Zum Inhalt springen

ms sql simple subtraktion in storedproc


Visionar

Empfohlene Beiträge

Morgen,

das ist mein e zweite Stored Procedure, die ich geschrieben habe. Also nicht meckern. So hab den Cursor-Krempel rausgenommen.

Möchte den Systen_User (z.B. domänicus\userus) und einen benutzer mit dem namen userus, der in einer tabelle auf redundanz prüfen.

Dafür möchte ich also beim System_User das "domänicus\ " loswerden .

Wie man sieht benutze ich Stringfkt. wie Len, Right und CharIndex

Klappt auch alles wunderbar, nur die Subtraktion (rot markiert) klappt nicht.

Da kommt immer 0 raus, obwohl 10hätte rauskommen sollen

@SystemUserLaenge ist gleich 17 und @Slashposition=7

Also wird subtrahiert man die Werte ???? *wahnsinnig werdend*

Das sind alles int-Datentypen

DECLARE @MyCursor CURSOR

DECLARE @Agentur nvarchar(50)

DECLARE @SystemUser  nvarchar(50)

DECLARE @Slashposition int

DECLARE @SystemUserLaenge int

DECLARE @NTName varchar(30)

DECLARE @NTNameLaenge int



Set @SystemUser =  System_User 



Set @SystemUserLaenge = 1;

Select LEN(@SystemUser)

print @SystemUserLaenge


Set @Slashposition = 1; 

SELECT CHARINDEX('\', @SystemUser)

print @Slashposition


Set @NTNameLaenge = 1;

[COLOR="Red"]@SystemUserLaenge - @Slashposition[/COLOR]

print @NTNameLaenge


Set @NTName = 1;

SELECT RIGHT(@SystemUser, @NTNameLaenge)

print @NTName



Link zu diesem Kommentar
Auf anderen Seiten teilen

das macht man doch so

Set @NTNameLaenge = 1;

@SystemUserLaenge - @Slashposition

Set @NTNameLaenge = @SystemUserLaenge - @Slashpositio

so klappts, aber auch nicht

und so auch nicht

SUBSTRING (@SystemUser, @Slashposition + 1, @SystemUserLaenge), wegen Falsche Syntax in der Nähe von 'SUBSTRING'. Liegt an dem befehl habs ausprobiert, aber so stimmt die syntax ..

Bearbeitet von Visionar
Link zu diesem Kommentar
Auf anderen Seiten teilen

ok hier die lösung leute. vllt. brauch das irgendwann einer

sind echt sperrlich infos zu finden, konnte fast 2stunden rumprobieren :eek

DECLARE @MyCursor CURSOR;

DECLARE @Agentur nvarchar(50);

DECLARE @SystemUser nvarChar(50);

DECLARE @NTName nvarchar(30);

DECLARE @Slashposition as int;

DECLARE @SystemUserLaenge as int;

DECLARE @NTNameLaenge as int;

DECLARE @EintragVoranden as bit;


Set @EintragVoranden = 0;

Set @SystemUser =  System_User;

Set @SystemUserLaenge = (Select LEN(@SystemUser));

Set @Slashposition = (SELECT CHARINDEX('\', @SystemUser));

Set @NTName = (SELECT SUBSTRING(@SystemUser, @Slashposition+1 , @SystemUserLaenge-@Slashposition));

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist etwas sehr umständlich was du da machst.

Set @SystemUserLaenge = (Select LEN(@SystemUser));

Wo du das her hast würd mich dann aber doch intressieren.....
set @SystemUserLaenge = LEN(@SystemUser) 
funktioniert wunderbar. Das ganze was du da oben in 5 Variablen zuweisungen machst mal in kurz :
SET @ntname = SUBSTRING(

                   SYSTEM_USER,

                   CHARINDEX('\', SYSTEM_USER) + 1,

                   LEN(SYSTEM_USER)

               )

Was den 3. Parameter von substring angeht :

SUBSTRING (Transact-SQL)

Abschnitt length_expression

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...