Мне нужно создать таблицу SQL с использованием динамического SQL - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь написать хранимую процедуру в SSMS , которая создает таблицу вместе с двумя столбцами с темой таблицы в качестве единственного параметра. Таблица должна иметь имя t, за которой следует тема таблицы. Что касается столбцов, то первый столбец представляет собой поле с суррогатным ключом с автоинкрементом * (и первичный ключ ), которое названо в качестве субъекта таблицы, за которым следует ID .

Второй столбец - это естественный ключ, который называется темой таблицы. Например, таблица, которая будет создана с темой «Студент», создаст таблицу с именем tStudent, с столбцом суррогатного ключа StudentID, а также столбцом естественного ключа с именем «Студент». Я пытаюсь сделать это с помощью динамического оператора SQL (который я новичок) и продолжаю сталкиваться с проблемами при попытке реализовать мой столбец с естественным ключом.

ALTER PROC spCreateTable 
    @subjectOfTable varchar(50)
AS
DECLARE @dynamicSQL nvarchar(500),
        @tableName varchar(50),
        @tableID varchar(50);

SET @tableName = ('t' + @subjectOfTable);
SET @tableID = (@subjectOfTable + 'ID');
SET @dynamicSQL = 'CREATE TABLE ' + @tableName + ' ( '+ @tableID + ' INT NOT NULL PRIMARY KEY IDENTITY(1,1) ' + @subjectOfTable + ' VARCHAR(50) ) ';

EXEC (@dynamicSQL)
GO

Я могу заставить его работать правильно, просто добавив столбец tableID, но у меня по-прежнему возникают проблемы с синтаксисом в столбце с естественным ключом subjectOfTable. Кто-нибудь, пожалуйста, помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...