|
|
|||||||||
|
|||||||||
|
|||||||||
| |
|||
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
TWO VARIABLES in stored procedure
My procedure gives me a hard time
![]() I cant use the variable @col to be a column name to compara to another variable (@val) - anyone´s got the answer?! ![]() Lin CREATE PROCEDURE searchStudent(@col VARCHAR(50),@val VARCHAR(50),@type VARCHAR(20))AS BEGIN TRANSACTION IF @type = 'all' BEGIN CREATE TABLE #temp ( namn varchar(50), adress varchar(50), telnr varchar(50), studenttyp varchar(20) ) INSERT INTO #temp SELECT g.namn,g.adress,g.telnr, s.studenttyp FROM gast as g, student as s WHERE s.stuid = g.stuid INSERT INTO #temp SELECT s.namn,s.adress,s.telnr, t.studenttyp FROM svensk as s, student as t WHERE s.stuid = t.stuid SELECT * FROM #temp WHERE @col LIKE @val + '%' END ELSE IF @type = 'swed' BEGIN SELECT * FROM svensk WHERE @colLIKE @val + '%' END ELSE IF @type = 'gues' BEGIN SELECT * FROM gast WHERE @col LIKE @val + '%' END COMMIT |
|
#2
|
|||
|
|||
|
You cannot use the @col variable that way. What you could do is write dynamic SQL and call the sp_executesql system stored proc to execute the sql statement.
Code:
DECLARE @sql nvarchar(1000) SET @sql = N'SELECT * ' + CHAR(13) + N'FROM #temp ' + CHAR(13) + N' WHERE ' + @col + N' LIKE ' + @val + N'%' EXECUTE sp_executesql @sql etc. Hope this helps
__________________
- Rogier Doekes |
![]() |
| Viewing: Dev Articles Community Forums > Databases > Microsoft SQL Server > TWO VARIABLES in stored procedure |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|