Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用azure SQL db中的存储过程一次性获取查询的所有批?_Javascript_Sql_Stored Procedures_Azure Sql Database - Fatal编程技术网

Javascript 如何使用azure SQL db中的存储过程一次性获取查询的所有批?

Javascript 如何使用azure SQL db中的存储过程一次性获取查询的所有批?,javascript,sql,stored-procedures,azure-sql-database,Javascript,Sql,Stored Procedures,Azure Sql Database,我正在检查一个集合中是否有重复项。对于存储过程和azure数据库来说是新的,所以现在我尝试统计不同的条目。如果count distinct(column name)=count(column name),则不存在重复项,因此我尝试为此编写一个存储过程。但是azure一次只能检索100个文档。我需要所有可用批次的计数 我能够得到不同条目的计数,但它显示了检索到的第一批的计数,即100。我需要所有批次的计数 function sample(prefix) { var collection =

我正在检查一个集合中是否有重复项。对于存储过程和azure数据库来说是新的,所以现在我尝试统计不同的条目。如果count distinct(column name)=count(column name),则不存在重复项,因此我尝试为此编写一个存储过程。但是azure一次只能检索100个文档。我需要所有可用批次的计数

我能够得到不同条目的计数,但它显示了检索到的第一批的计数,即100。我需要所有批次的计数

function sample(prefix) {
    var collection = getContext().getCollection();

    var isAccepted = collection.queryDocuments(
        collection.getSelfLink(),
        'SELECT DISTINCT VALUE r.column FROM root r',
    function (err, feed, options) {
        if (err) throw err;
        if (!feed || !feed.length) {
            var response = getContext().getResponse();
            response.setBody('no docs found');
        }
        else {
            var response = getContext().getResponse();
            response.setBody(JSON.stringify(feed.length));
        }
    });

    if (!isAccepted) throw new Error('The query was not accepted by the server.');
}

我希望输出对集合中的不同条目进行计数。它应该是103,但实际值是100,这是azure一次性检索到的数字。

queryDocuments的FeedOptions pageSize属性的默认值是100,这可能是问题的原因。请尝试将该值设置为-1。以下存储过程在我这方面运行良好,请参考它

function getall(){
 var context = getContext();
  var response = context.getResponse();
  var collection = context.getCollection();
  var collectionLink = collection.getSelfLink();

  var filterQuery = 'SELECT * FROM c';

  collection.queryDocuments(collectionLink, filterQuery, {pageSize:-1 },
    function(err, documents) {
      response.setBody(response.getBody() + JSON.stringify(documents));
    }
  );
}

希望有帮助。

如果有帮助,请接受作为答案。这将帮助其他有同样问题的人。