webForumDet fria alternativet

fel i stored procedure

2 svar · 218 visningar · startad av hakan@4u2.se

hakan@4u2.seMedlem sedan aug. 2000333 inlägg
#1

Har en stored procedure där jag vill ha ut bildnamnet (nvarchar), men får bara fel, men om däremot bildname är ett tal (int) så går det bra, vad gör jag för fel?

SP

CREATE  PROCEDURE sp_hakan_NVARCHAR
as

DECLARE @bildname nvarchar(50)

SELECT @bildname = 'hejsan'
exec ('SELECT '+@bildname+' as name FROM kampanj  ')
GO

Fel:

DECLARE @RC int
EXEC @RC = [kdb2].[dbo].[sp_hakan_4u2_se_test] 
DECLARE @PrnLine nvarchar(4000)
PRINT 'Stored Procedure: kdb2.dbo.sp_hakan_4u2_se_test'
SELECT @PrnLine = '	Return Code = ' + CONVERT(nvarchar, @RC)
PRINT @PrnLine

------------------------------------------------------------------------------
Server: Msg 207, Level 16, State 3, Line 1
Invalid column name 'hejsan'.
Stored Procedure: kdb2.dbo.sp_hakan_4u2_se_test
	Return Code = 0

Denna fungerar med tal istället..hmm!

CREATE  PROCEDURE sp_hakan_INT
as

DECLARE @bildname int

SELECT @bildname =1
exec ('SELECT '+@bildname+' as name FROM kampanj  ')
GO
LarsGMedlem sedan dec. 200012 464 inlägg
#2

Vad vill du åstadkomma? Det du försöker med nu kommer att resultera i lika många rader där det står 'hejsan' som det finns poster i tabellen kampanj.

Om du bara vill ha ett resultat där det står 'hejsan' så behöver du inte krångla till det .

CREATE  PROCEDURE sp_hakan_NVARCHAR
as
SELECT 'hejsan'

Om du vill returna värdet i en variabel

CREATE  PROCEDURE sp_hakan_NVARCHAR
as
...
SELECT @x
hakan@4u2.seMedlem sedan aug. 2000333 inlägg
#3

Tack LarsG, så enkelt var det!

Måste ha lidit av sömnbrist eller nåt!

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)