首页 文章

从名称表中选择表中的所有行是Nvarchar

提问于
浏览
1

我将通过SQL查询创建过程并具有 @name_tablenvarchar ) .

如何使用多个表的一个程序不使用 EXEC

例:

CREATE TABLE tbl_produces
(
   id int primary key,
   name nvarchar(250)
)
GO

INSERT INTO tbl_produces VALUES (1, 'abc'), (2, 'cde'), (3, 'hfd')
GO

CREATE PROCEDURE return_table
(
   @table_name nvarchar(250)
)
AS
  SELECT * FROM @table_name  
  RETURN
  GO

EXEC return_table 'tbl_produces' " = " SELECT * FROM tbl_produces

我怎样才能做到这一点?帮我!感谢帮助

我不想用

CREATE PROCEDURE return_table
(
   @table_name_ nvarchar(250)
)
AS
  DECLARE @sqlStr nvarchar(max) ,
          @ParmDefinition nvarchar(MAX) 
  Set @sqlStr = 'SELECT * FROM @table_name' 
  SET @ParmDefinition = N'@table_name nvarchar(250),
  EXECUTE sp_executesql @sqlStr,
                        @ParmDefinition,
                        @table_name = @table_name_
  RETURN
  GO

我想不要使用EXECUTE可以返回表


可以看看你是否使用查询

CREATE PROCEDURE return_table
(
   @table_name_ nvarchar(250)
)
AS
  DECLARE @sqlStr nvarchar(max) ,
          @ParmDefinition nvarchar(MAX) 
  Set @sqlStr = 'SELECT * FROM @table_name' 
  SET @ParmDefinition = N'@table_name nvarchar(250),
  EXECUTE sp_executesql @sqlStr,
                        @ParmDefinition,
                        @table_name = @table_name_
  RETURN
  GO

当我想创建1个函数时,对于多个表

CREATE FUNCTION [dbo].[DanhSachNhaCungCap] ( ) -- Thong Tin Nha Cung Cap
RETURNS  TABLE 
AS
RETURN
(
    select * from 
    ( 
       SELECT 'EXEC return_table ''tblProduct_01''' AS sp_executesql
       UNION ALL 
       SELECT 'EXEC return_table ''tblProduct_02''' AS sp_executesql     
    ) AS T
)
GO
  • 失败了

2 回答

  • 2

    试试这个:

    CREATE TABLE tbl_produces
    (
       id int primary key,
       name nvarchar(250)
    )
    GO
    
    INSERT INTO tbl_produces VALUES (1, 'abc'), (2, 'cde'), (3, 'hfd')
    GO
    CREATE PROCEDURE return_table
    (
       @table_name nvarchar(250)
    )
    AS
      DECLARE @V_Query NVARCHAR(MAX);
      SET @V_Query = 'SELECT * FROM ' + @table_name;
    
      EXEC sp_executesql @V_Query
      GO
    
    EXEC return_table 'tbl_produces'
    
  • 1

    你试过 sp_executesql 吗?

    sp_executesql 'select * from ' + @tableName
    

    Documentation here

相关问题