2014-03-04 93 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字符串,创建数据表。