Хранимая процедура с вводом JSON для создания определения таблицы - PullRequest
2 голосов
/ 20 марта 2012

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

Мне было интересно, создал ли кто-нибудь хранимую процедуру, которая взяла в качестве входных данных строковый объект JSON и создала таблицу на основе этой схемы?

Я все еще размышляю над этим в моем мозгу относительно того, должен ли я делать это в sproc (предпочтительно) или писать динамический sql в службе C #.

1 Ответ

0 голосов
/ 20 марта 2012

Лично я бы не подошел к этой проблеме, передав строку JSON хранимой процедуре. Однако, если вы хотите сделать это таким образом, вы можете передать объект JSON непосредственно в хранимую процедуру, а затем манипулировать строкой, как показано ниже. Я предоставил код для управления именем таблицы и создания таблицы на основе примера строки JSON '{TABLENAME: TABLENAME, Fields: {field1: varchar, field2: int}}'. Затем вам придется изменить это, чтобы включить поля и типы данных, основанные на строке.

CREATE PROCEDURE CreateTableFromJSON
(
    @JSON       VARCHAR(100)
)

AS

DECLARE @TableName VARCHAR(100) 

SET @TableName = SUBSTRING(@json, CHARINDEX(':', @json)+1, CHARINDEX(',', @json) -CHARINDEX(':', @json)-1)


DECLARE @SQL VARCHAR(100)

SET @SQL = 'CREATE TABLE ' +  @TableName + ' (ID INT)'

EXEC(@SQL)

GO

EXEC CreateTableFromJSON '{TABLENAME:TABLENAME, Fields: {field1:varchar, field2: int }}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...