2014-03-04 134 views
0

是否有任何的方式來創建的存儲過程需要兩個參數(TABLE_NAME,行數)行會在像JSON例如標準格式: -動態插入MSSQL步驟

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

或任何其他格式。我們的目標是「創建簡單的插入一個過程」

謝謝

+0

您需要將插入生成爲字符串,然後使用sp_execute_sql或EXEC來執行它。您的存儲過程需要兩個VARCHAR參數。儘管如此,它很容易受到SQL注入攻擊。如果你想簡化一些事情,你可能需要考慮在你的SP中建立UPSERT邏輯或者使用MERGE語句。如果它存在或插入,則會更新' –

+0

MERGE語句是個好主意,謝謝,但有沒有現成的程序可以避免重複循環 –

+0

您可以在網上找到一個。你的第一步是獲取表名(甚至可以在JSON中),並在存儲過程中創建字符串'INSERT INTO'+ @ TableName''爲什麼不嘗試這麼多並將其發回。 –

回答

0

請嘗試搜索TVP才達到這一目標。 在TVP(表值參數)的幫助下,您只需要在SQL存儲過程中僅傳遞一個參數,因此在後面的代碼中創建Json字符串,創建數據表。