Задание обьектов в качестве параметров процедуры

  • Автор темы NikSoft
  • Дата начала
N

NikSoft

Гость
#1
Пусть ,например, нам надо в зависимости от данной таблицы получить содержимое двух ее полей.
Следующий код решает задачу.

Код:
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo]. [sp_GeneralProc]
@table	varchar(50),
@field1	varchar(50),
@field2 	varchar(50)

AS
SET NOCOUNT ON  

DECLARE @ExecSql varchar(2500)
SELECT @ExecSql = 'SELECT ' + @field1 + ', ' + @field2 + ' INTO TempTable FROM ' + @table
EXEC(@ExecSql)
SELECT * FROM TempTable;
DROP Table TempTable

RETURN(0)
Чтобы получить содержимое полей CategoryName, Description таблицы Categories базы данных Northwind необходимо выполнить следующий код

Код:
EXEC sp_GeneralProc @field1='CategoryName', @field2='Description', @table='Categories'
Предложенный метод распространяется и на другие обьекты: views, stored procedures и так далее.
В качестве сервера данных использовался SQL Server 2005.