vidya jobin Ответов: 3

Динамическое создание таблиц в SQL Server 2008 с помощью хранимой процедуры


как создать динамическое создание таблиц в sql server 2008 с помощью хранимой процедуры

3 Ответов

Рейтинг:
21

Sandeep Mewara

Как насчет чего-то вроде:

CREATE PROCEDURE sproc_CreateTableAtRuntime
           @TableName NVARCHAR(128)
          ,@Column1Name NVARCHAR(32)
          ,@Column1DataType NVARCHAR(32)
          ,@Column1Nullable NVARCHAR(32)

AS

DECLARE @SQLString NVARCHAR(MAX)
SET @SQString = 'CREATE TABLE ' + @TableName + '( '+ @Column1Name + ' ' + @Column1DataType + ' '+ @Column1Nullable +') ON PRIMARY '

EXEC (@SQLString)

Во исполнение:
EXEC sproc_BuildTable 'Customers','CustomerName','VARCHAR(32)','NOT NULL'


При необходимости аналогичное обсуждение здесь.[^]

Также сослаться: Как динамически создать таблицу с помощью хранимой процедуры SQLServer [^]


_Amy

5!

Sandeep Mewara

Спасибо.

Рейтинг:
1

damodara naidu betha

Привет,

Таблицы можно создавать динамически следующими способами.

1. динамический SQL - 'нужно построить запрос для создания таблицы'.
Примечание : - здесь вы должны проверить, есть ли уже таблица
или нет, прежде чем выполнить динамический sql-запрос.

2. Выберите оператор

Здесь у нас есть два варианта создания таблицы.

а)создать таблицу вместе с данными

SELECT A.COL1,A.COL2... INTO NEWTABLE
         FROM EXISTINGTABLE


Если вы выполните этот запрос ... sql server не только создает таблицу
в соответствии с критериями выбора, но и вставляет результирующий набор
запроса во вновь созданную таблицу.

б)создать таблицу только со схемой

SELECT A.COL1,A.COL2... INTO NEWTABLE
FROM EXISTINGTABLE WHERE 1=0

Этот запрос создает таблицу в соответствии с критериями выбора. Здесь
данные не будут храниться во вновь созданной таблице.

Спасибо


Рейтинг:
1

solanki.net

Вы должны попробовать вот так :

ALTER PROCEDURE spName(
DECLARE @tableName VARCHAR(100),@columnName VARCHAR(50),@Query VARCHAR(8000) )
BEGIN
SET @Query='CREATE TABLE '  + @tableName + '(' +@columnName + ' VARCHAR(200)'+ ')'
EXECUTE (@Query)
END


brahmaiah77

Привет ,
это Шива,
у меня уже есть динамическая таблица, Как я могу вставить данные в таблицу с помощью SP. пожалуйста, отправьте ссылку на этот почтовый идентификатор: - shivaiah.dantala@gmail.com

Member 4147938

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

Richard MacCutchan

Этому вопросу уже более 3 лет. Пожалуйста,не пишите в мертвых вопросах.