Лично я бы не подошел к этой проблеме, передав строку 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 }}'