Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Jobba med sökresultatet från en lagrad procedur

Postades av 2004-10-29 14:44:12 - Niclas Blomquist, i forum sql-server/msde, Tråden har 5 Kommentarer och lästs av 625 personer

Är det någon som har ett tips om hur jag ska kunna använda resultatet jag får från en lagrad procedur? Jag skriver ett script som jag vill kunna köra flera gånger som ska lägga upp en ny användare i MS SQL Server. För att veta om jag ska lägga till användaren eller inte måste jag veta om den redan finns.

Det finns ju en lagrad procedur sp_helpuser 'användarnamn' som ger ett resultat tillbaka. Jag tänker mig något i stil med:

IF EXISTS (select * from <det sökresultat jag får från sp_helpuser>)
Print 'Användaren finns!'
ELSE
-- Lägg till användaren


Till saken hör att jag måste förhindra alla felmeddelanden från SQL Server, för mitt scriptprogram avbryter om ett felmeddelande returneras och då körs inte resterande rader i scriptet och uppdateringen blir ofullständig.

Tacksam för tips!


Svara

Sv: Jobba med sökresultatet från en lagrad procedur

Postades av 2004-10-29 14:51:10 - Patrik Dahlén

Vad är det för programmeringsspråk du kodar i?


Svara

Sv: Jobba med sökresultatet från en lagrad procedur

Postades av 2004-10-29 15:03:21 - Per Karlsson

Skapa en temporärtabell och fyll den med resultatet från en sp.
Exempel:
<CODE>
CREATE TABLE #users
(
UserName VARCHAR (50),
GroupName VARCHAR (50),
LoginName VARCHAR (50),
DefDBName VARCHAR(50),
UserID INT,
SID INT
)

INSERT INTO #users
EXEC sp_helpuser

--Gör något med resultatet

DROP TABLE #users
</CODE>

Du får kolla upp fältlängderna själv. Jag känner inte till hur långa strängar som tillåts.

/Pelle


Svara

Sv: Jobba med sökresultatet från en lagrad procedur

Postades av 2004-10-31 10:08:57 - Pelle Johansson

Är det något i denna stil du är ute efter? DU skickar in för och efternamn. Finns detta redan i tabellen så gör vi nåt annat, annars adderar vi

<code>
create procedure createnewuser
@firstname varchar(50)
, @lastname varchar(50)
, @password varchar(50)
as

if not exists(select * from usertabell where firstname = @firstname and lastname=@lastname)
begin
insert into usertabell (firstname, lastname, password) values(@firstname, @lastname, @password)
end
else
begin
update usertabell
set password = @password
where firstname = @firstname
and lastname = @lastname
end
</code>


Svara

Sv: Jobba med sökresultatet från en lagrad procedur

Postades av 2004-11-01 09:30:59 - Niclas Blomquist

Japp, med lite modifiering gick det bra.

Fältlängderna ska vara nvarchar(128) eller aliaset sysname och sifferfälten är smallint. Jag var även tvungen att speca att några fält kunde innehålla NULL. Så här blev det:

CREATE TABLE #users
(
UserName sysname,
GroupName sysname,
LoginName sysname null,
DefDBName sysname null,
UserID smallint,
SID smallint
)

Då kunde jag göra som du sa:
INSERT INTO #users EXEC sp_helpuser

och sedan göra:
IF EXISTS (SELECT * FROM #users WHERE UserName = 'EttAnvNamn') BEGIN
-- gör det ena
END
ELSE BEGIN
-- gör det andra
END

DROP TABLE #users

Tack för hjälpen!

Patrik: Programmeringsspråket är T-SQL.


Svara

Sv: Jobba med sökresultatet från en lagrad procedur

Postades av 2004-11-01 10:44:14 - Per Karlsson

Du kan också testa det här - så får du lite enklare och effektivare kod:

<CODE>
DECLARE @OK BIT

EXEC @OK = sp_helpuser 'EttAnvNamn'

if @OK = 0
-- gör det ena
ELSE
-- gör det andra

</CODE>

Det är inte säkert att denna metod fungerar lika bra eftersom sp_helpuser verkar ge ett fel om inte användaren finns, men du kan ju testa.

/Pelle


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
541
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies