我使用了大量的动态SQL - 我认为必须有一些好的指南,框架和/或工具来帮助人们使用动态SQL查询。 我正在寻找关于如何构建动态SQL查询的确切建议(没有明显的解决方案,只需编写它,然后添加'等等)。
这里的一个大问题是,它有时会变得混乱(包含另一个动态sql等的动态sql)。
如果它很重要,我使用的是sql-server。
我会接受任何建议, 谢谢! ;)
答案 0 :(得分:0)
模糊的问题..但有一条建议:
使用sp_executesql并尽可能传入任何变量/参数以防止SQL注入
答案 1 :(得分:0)
如果可能,尽可能生成动态SQL,不要自己编写。
执行动态SQL而不将参数附加到SQL字符串,使用参数并将它们传递给sp_executesql
以避免必须进行双引号(太繁琐)。它也是防止SQL注入的坚实后盾。例如:
DECLARE @stmt NVARCHAR(MAX)='SELECT * FROM your_table WHERE id=@par1 AND ... AND thename=@parn;';
EXECUTE sp_executesql @stmt, N'@par1 INT, ..., @parn VARCHAR(256)', @par1, ... , @parn;