Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ms sql simple subtraktion in storedproc

Empfohlene Antworten

Veröffentlicht

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



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

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));

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.