我正在构建一个网络应用程序,用户可以将图像拖到浏览器中并放置以上传它们。问题是,我希望文件按照与从中拖出文件的文件夹相同的顺序上传。看起来 ondrop 事件的 DragEvent.DataTransfer.FileList 中的文件是随机排序的。这个顺序是如何确定的呢?我是否可以确定用户从中拖出文件的文件夹中文件的原始顺序?
我有一个正在尝试优化的存储过程,它接受表变量作为参数。表变量具有单个列,用于传入主键列表。测试时,我创建一个虚拟表变量,运行一堆 INSERT 语句向其中添加虚拟值,然后将其传递到存储过程中。这工作正常,但是当我想查看实际的查询执行计划时,SSMS 会为所有 INSERT 语句和存储过程编译查询计划。因此,如果我有 1000 个虚拟 INSERT 语句,SSMS 将崩溃。不幸的是,表变量必须与存储过程在同一批中执行,因此我无法批量启用/禁用查询计划。
有没有办法只编译存储过程的实际查询计划,忽略批处理中的所有 INSERT 语句?
它看起来是这样的:
DECLARE @dummyIds AS PrimaryKeyTable
INSERT INTO @dummyIds VALUES(1)
INSERT INTO @dummyIds VALUES(2)
...
INSERT INTO @dummyIds VALUES(1000)
EXEC MyStoredProc @dummyIds
Run Code Online (Sandbox Code Playgroud)
如果我执行包含实际查询计划的批处理,它将生成 1001 个查询计划,而我实际上只想要 1 个。
SQL Server 实例正在运行 SQL SERVER 2014。