[MS-SQL] De tabel waaruit we zoeken, als param.

Pagina: 1
Acties:

  • Dennis van der Stelt
  • Registratie: Januari 2000
  • Laatst online: 17-09 19:32
Is het mogelijk om een tabel of een veld als parameter mee te geven aan een SP?

Dus zoiets als
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE STORED PROCEDURE Tessie
  (
    @ID int,
    @MyTable varchar(64)
  )
<snip>

SELECT *
FROM   [@MyTable]
WHERE  ID = @ID

RETURN
END
GO

Is dat te doen? Zoals hier werkt 't niet... :)

Doe maar gewoon, dan doe je al gek genoeg.


Verwijderd

Niet getest..
code:
1
2
3
4
5
6
7
8
9
10
11
12
CREATE STORED PROCEDURE Tessie
  (
    @ID int,
    @MyTable varchar(64)
  )
<snip>

exec 'SELECT * FROM '+@MyTable'+WHERE  ID = '+convert(varchar(10),@ID)

RETURN
END
GO

edit:
cast moest convert zijn.

Verwijderd

code:
1
2
3
4
5
6
7
8
CREATE PROCEDURE foo
    @sMyTable nvarchar(125),
    @iID int
AS
DECLARE @sQuery nvarchar(4000)

SET @sQuery=N'SELECT * FROM ' + @sMyTable + 'WHERE ID=@iMyID'
EXEC sp_executesql @sQuery, N'@iMyID int', @iID

zie ook help bij sp_executesql system stored procedure in books online.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Uiteraard werkt dit prima, maar hou wel rekening mee dat dit qua performance meestal minder goed is. Soms is het efficienter om meerdere procedures te maken voor verschillende zoek acties.