webForumDet fria alternativet
Logga in / Bli medlem

fel i stored procedure

Databaser & SQL

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

Medlem sedan aug. 2000333 inlägg
Trådstart#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
Medlem 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
Medlem sedan aug. 2000333 inlägg
#3

Tack LarsG, så enkelt var det!

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

372 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
123 ms — hämta statistik (db)
122 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)