Sql 我可以在表的索引n处插入一行吗?

Sql 我可以在表的索引n处插入一行吗?,sql,sql-server-2005,insert,union,Sql,Sql Server 2005,Insert,Union,我知道我可以做一个联合——但是有更好的方法吗?我们使用动态SQL,并将其存储在表中,其中一些语句具有ORDER BY子句。我必须在顶部添加一个动态的“全部”选项,该选项也存储在数据库中,以填充应用层中的下拉列表 我知道这是一个不可靠的解决方案,但我被应用程序当前的设计所束缚。另一个选项是除了更改存储过程之外,还向数据模型和应用层添加一组代码。如果UNION是我唯一/最好的选择,我可以这样做。我只是想知道在数据库方面是否有更好的方法 另外,我不想讨论存储在数据库中的动态SQL字符串的优点。这就是我

我知道我可以做一个
联合
——但是有更好的方法吗?我们使用动态
SQL
,并将其存储在表中,其中一些语句具有
ORDER BY
子句。我必须在顶部添加一个动态的“全部”选项,该选项也存储在数据库中,以填充应用层中的下拉列表

我知道这是一个不可靠的解决方案,但我被应用程序当前的设计所束缚。另一个选项是除了更改存储过程之外,还向数据模型和应用层添加一组代码。如果
UNION
是我唯一/最好的选择,我可以这样做。我只是想知道在数据库方面是否有更好的方法


另外,我不想讨论存储在数据库中的动态
SQL
字符串的优点。这就是我的工作方式。谢谢大家

听起来您现有的按列排序的订单无法满足您当前的需求。为什么不添加另一列来明确详细说明下拉控件项的位置,然后在存储过程中按该列排序


我不给你讲动态SQL了。只需小心用户输入,嗯?;)

在SQL数据库中,没有预定义的顺序,例如,您不能在“位置42”处插入行-没有这样的事情。只有在选择数据并显式指定
order BY
子句时,才会定义顺序。如果您需要强制执行排序,您可以添加一个
序列
(int)列,并用适当的值填充它,这样您就可以从dbo执行
选择(col列表)。您的表按顺序排序
,并按您想要/需要的顺序取回数据。有一种即将到来的感觉。我只是希望有办法。你能用
NULL
值来表示“全部”吗?它将在任何其他值之前进行排序,或者可以使用
大小写调整
顺序,将其放置在排序的另一端。注入与我们的操作方式无关。我们提供了选项,所以除非我们注入自己的数据库,否则一切都好。我将注意显示“drop TABLE USERS;”“=”的下拉项ORDER BY的问题是它也被编码到存储的SQL字符串中。这些字符串被执行,这给了我必须添加的结果。我要给工会一次机会看看会发生什么。谢谢你的帮助。@Yatrix-听起来确实很棘手。这是另一个StackOverflow问题,还是您在原始查询中所指的问题?