---
title: "Stored Procedure - Hjälp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/64542-stored-procedure-hjälp"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Nson"
published: "2003-01-12T09:25:33.000Z"
updated: "2003-01-13T10:04:33.000Z"
replies: 10
views: 391
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/64542-stored-procedure-hjälp"
---

# Stored Procedure - Hjälp

## #1 — Nson, 2003-01-12T09:25Z

Så var man i gång att meckade med Stored Procedure's och kör fast. 

Det här vill jag göra: 

I en databas har jag en tabell, här vill jag utföra en SELECT sats och hämta in ett par värden.

För att i nästa stund använda de värden som jag hämtade i SELECT satsen för att sätta in dom i en INSERT INTO sats, men då i en tabell som ligger i en annan databas.

Exmepel på kod som inte fungerar:

CREATE PROCEDURE dbo.StoredProcedure1

	(
		@name_1 varchar(50);
		@name_2 varchar(50);
	)

AS
	SELECT name AS @Name_1 FROM Test_1 
	
	INSERT INTO databas2.Test_2 (name) VALUES (@name_1)
	
	
RETURN 

Tacksam för all hjälp. 

/Nson

Permalänk: https://www.webforum.nu/p/64542

## #2 — @nders, 2003-01-12T09:48Z

Ska du verkligen ha @name_1 och @name_2 som inputparametrar? Det kanske de inte borde vara. Prova detta:

```
CREATE PROCEDURE dbo.StoredProcedure1 
AS

DECLARE 
@name_1 varchar(50),
@name_2 varchar(50) 

SELECT [b]@name_1 = name[/b] FROM Test_1 

INSERT INTO databas2.Test_2 (name) VALUES (@name_1) 

RETURN
```

Mvh

Permalänk: https://www.webforum.nu/p/910271

## #3 — Nson, 2003-01-12T10:07Z

Aha... Så om jag fattar det rätt:

ex:

ALTER PROCEDURE dbo.StoredProcedure1 

AS

( 
   @input varchar(50)

)

DECLARE

   @varibel varchar(50)

så är den första då en input (som man skickar med) och det under declare är variabler att använda i "sql satsen" eller ?

Är jag helt ute o cycklar ?

Permalänk: https://www.webforum.nu/p/910281

## #4 — @nders, 2003-01-12T10:12Z

Variabler du definierar innanför parentesen *före* AS är inparametrar. Nu vet jag inte vad du använder för språk när du programmerar, men jag gör en liten jämförelse med VB:

```
Public Function Testfunktion (byval inparameter1 as string, byval inparameter2 as string)
Dim lokalvariabel1 as string
Dim lokalvariabel2 as string
..
..
End function
```

Resp

```
CREATE PROCEDURE dbo.StoredProcedure1 (@inparameter1 varchar(50), @inparameter2 as varchar(50))
AS

DECLARE 
@lokalvariabel1 varchar(50),
@lokalvariabel2 varchar(50) 
...
```

Det var iofs ett bra tag sedan jag höll på att pilla med sånt här, men jag hoppas att jag inte gjort bort mig. Jag vet inte om min jämförelse gick fram heller, men jag försökte i alla fall. :e

Mvh,

Permalänk: https://www.webforum.nu/p/910286

## #5 — Nson, 2003-01-12T12:04Z

Den satt som en smäck... Tack skall du ha! 

En annan fråga, när man definerar in och variabler, om man tex har image eller text kolumner måste man då ange strolek på dom eller ?

/Nson

Permalänk: https://www.webforum.nu/p/910332

## #6 — @nders, 2003-01-12T12:20Z

Du behöver inte ange storleken på text och image när du har med dem som inparametrar.

Jag tror dock inte att man överhuvudtaget kan skapa lokala variabler av typen text eller image i en stored procedure. Det kan ha ändrats visserligen, men så låg det till när jag jobbade med SQL Server 97 förr i tiden.

mvh,

Permalänk: https://www.webforum.nu/p/910341

## #7 — LarsG, 2003-01-12T14:51Z

Du behöver inga variabler för att kopiera poster från en tabell till en annan.

```
insert into INSERT INTO databas2.Test_2 (name) SELECT  name FROM Test_1
```

Hur skall det fungera om test_1 innehåller flera poster? Med din lösning vet du inte vilken poster du får.

Permalänk: https://www.webforum.nu/p/910448

## #8 — Nson, 2003-01-12T18:51Z

Men om man skall ha mera data och sätta in då Lars, kan man köra flera select satser ? 

Alltså jag skall dels sätta in data som kommer från en annan databas men jag skall ochså sätta in nya variabler från ett formolär...

/Nson

Permalänk: https://www.webforum.nu/p/910655

## #9 — LarsG, 2003-01-12T19:02Z

Hur då menar du?

Du kan ju lägga allt i en union

```
create procedure p(@name varchar(20))
as
insert into t1 select @name union select name from t2
```

Jag förstår nog inte vad du menar.

Permalänk: https://www.webforum.nu/p/910666

## #10 — Nson, 2003-01-12T23:11Z

Mer trubbel, 

som sagt plockar in data mellan två olika tables som ligger i två databaser... trodde man kunde göra :

INSERT INTO databasnamn.tabellnamn men det vill sig inte... 

INSERT INTO tabellnamn IN databasnamn vill sig inte heller ...

urgha för sql känns det som nu... 

Lars... Koden ser ut så här den som jag använder nu:

ALTER PROCEDURE dbo.postnewad
(
	@ID as uniqueidentifier,
	@fldType as varchar(50),
	@fldCategory as varchar(50),
	@fldTitle as varchar(150),
	@fldText as text
)
AS

DECLARE 
@fldLocation varchar(50),
@fldMarrialStatus varchar(50), 
@fldSex1 varchar(50),
@fldSex2 varchar(50),
@fldAge1 varchar(50),
@fldAge2 varchar(50)

SELECT @fldLocation = fldLocation, @fldMarrialStatus = fldMarrialStatus, 
@fldSex1 = fldSex_1, @fldSex2 = fldSex_2, @fldAge1 = fldAge_1,
@fldAge2 = fldAge_2 FROM portal_users.logins WHERE fldID = @ID 

INSERT INTO portal_personals.ads (fldType, fldCategory, fldTitle, fldText, fldPoster, fldPoster_location, fldPoster_age1, fldPoster_age2, 
fldPoster_MarrialStatus, fldPoster_Sex1, fldPoster_Sex2) VALUES (@fldType, @fldCategory, @fldTitle, @fldText, @ID, @fldlocation, @fldage1, @fldage2, 
@fldMarrialStatus, @fldSex1, @fldSex2)

RETURN

Som sagt var en del data kommer från ett formulär och en del från en annan databas...

Permalänk: https://www.webforum.nu/p/910892

## #11 — LarsG, 2003-01-13T10:04Z

```
 
portal_personals.dbo.ads
```

Permalänk: https://www.webforum.nu/p/911092

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/64542-stored-procedure-hjälp
