Как помещать имя таблицы как переменной в консультацию SQL Server?

Я новый в этом SQL Server и я хочу создать SP, который заносил в список бы все данные о таблице, но считая изменчивой таблицу будучи нужно консультировать которую.

Он считал хорошо обдуманным нечто похожее:

CREATE PROCEDURE SP_LISTAR_TODOS
(@tabla )
AS
SELECT * FROM @tabla

Ясно, нет типа информации @tabla, или: бук другой способ это делать?

Это мое сомнение, спасибо.

2
задан 12.06.2016, 04:05
3 ответа

Ты хочешь создать Сторед Проседуре, чтобы выбирать данные о таблице, изменчивая таблица будет получена как párametro:

CREATE PROCEDURE SP_LISTAR_TODOS 
@tabla NVARCHAR(128) 
AS 
BEGIN 
  SET NOCOUNT ON;
  DECLARE @Sql NVARCHAR(MAX);

  SET @Sql = 'SELECT * FROM ' + QUOTENAME(@tabla)     
  EXEC sp_executesql @Sql

END
2
ответ дан 24.11.2019, 14:10

Ты можешь пытаться с решением EXECUTE, которое интерпретирует цепь, распределенную как серия команд SQL

EXECUTE format('SELECT * FROM %s', @tabla)
INTO result;
0
ответ дан 24.11.2019, 14:10

Превосходный вклад, я искал находить максимальную стоимость в поле таблицы, имя которой изменчивое. этот ключ в QUOTENAME (@tabla) и использовать EXEC sp_executesql @Sqldos

Я использовал этот код:

SET NOCOUNT ON   DECLARE @Sqldos NVARCHAR(MAX);    
SET @Sqldos = 'SELECT max(idtablaimsa) as puto FROM ' + QUOTENAME(@nomtabla)   
     EXEC sp_executesql @Sqldos

Спасибо!

0
ответ дан 24.11.2019, 14:10

Теги

Похожие вопросы