Использование переменной для определения таблицы для выбора из - PullRequest
1 голос
/ 28 декабря 2011

это новая ошибка, которую я получаю:

IF object_id('Osvezi') IS NULL

EXEC sp_executesql N' 
CREATE PROCEDURE Osvezi
    -- Add the parameters for the stored procedure here
    @tablica nvarchar(200)
AS
BEGIN
   IF @tablica = 'Uporabniki' THEN SELECT * FROM Uporabniki;

   IF @tablica = 'Dokumenti' THEN SELECT * from Dokumenti;
END'
GO

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

Вам нужно использовать двойной '' в строке, чтобы получить один ', и вам нужно удалить then.

IF object_id('Osvezi') IS NULL
EXEC sp_executesql N' 
CREATE PROCEDURE Osvezi
    -- Add the parameters for the stored procedure here
    @tablica nvarchar(200)
AS
BEGIN
   IF @tablica = ''Uporabniki'' SELECT * FROM Uporabniki;

   IF @tablica = ''Dokumenti'' SELECT * from Dokumenti;
END'
GO
0 голосов
/ 28 декабря 2011

Вы можете сделать это так, но это НЕ РЕКОМЕНДУЕТСЯ

CREATE PROCEDURE Osvezi
    -- Add the parameters for the stored procedure here
    @tablica nvarchar(200)
AS
BEGIN
    EXECUTE('SELECT * FROM' + @tablica);
END

Также это будет зависеть от того, какую СУБД вы используете; SQL СЕРВЕР? MYSQL? POSTGRESQL

Edit:

Если вам нужна такая гибкость, попробуйте Модель Entity-Attribute-Value

...