2014-03-04 6 views
0

Есть ли способ, чтобы создать хранимую процедуру берут два параметра (table_name, Rows) строки будут в стандартном формате, как JSON, например: -Динамическая Вставка MSSQL Процедура

INSERT("TABLENAME","{{id:1,Code:'AA'},{id:2,Code'BB'}}") 

или любой другой формат. цель является «создание одной процедуры для простой вставки»

спасибо

+0

Вам нужно будет сгенерировать вставку в виде строки, а затем использовать sp_execute_sql или EXEC для ее выполнения. Ваша хранимая процедура займет два параметра VARCHAR. Однако он был бы уязвим для атаки SQL Injection. Если вы хотите упростить вещи, вы можете рассмотреть возможность создания логики UPSERT в своем SP или с помощью оператора MERGE. Это будет обновляться, если оно существует или вставляется, если это не так. –

+0

СООБЩЕНИЕ MERGE - это хорошая идея, но есть ли готовая процедура, чтобы избежать повторного цикла. –

+0

Возможно, вы найдете его в Интернете. Ваш первый шаг состоял бы в том, чтобы взять имя таблицы (это может быть даже в JSON) и сделать строку '' INSERT INTO '+ @ TableName' в хранимой процедуре' Почему бы вам не попробовать так много и опубликовать ее обратно. –

ответ

0

Пожалуйста, попробуйте искать TVP для того чтобы достигнуть этой цели. С помощью TVP (параметр, оцененный таблицей) вам нужно передать только один параметр в хранимой процедуре SQL, поэтому он должен создать строку Json в коде позади, создать datatable.

Смежные вопросы