首页 文章

使用变量确定要从中选择的表

提问于
浏览
1

这是我得到的新错误:

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 回答

  • -1

    你需要在字符串中使用双 '' 来获得一个 ' ,你需要删除 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

    你可以这样做,但不推荐

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

    它还取决于您使用的是哪个DBMS; SQL SERVER? MYSQL? POSTGRESQL?

    Edit:

    如果您需要这种灵活性,请尝试Entity-Attribute-Value Model

相关问题