Javascript 如何使用azure SQL db中的存储过程一次性获取查询的所有批?
我正在检查一个集合中是否有重复项。对于存储过程和azure数据库来说是新的,所以现在我尝试统计不同的条目。如果count distinct(column name)=count(column name),则不存在重复项,因此我尝试为此编写一个存储过程。但是azure一次只能检索100个文档。我需要所有可用批次的计数 我能够得到不同条目的计数,但它显示了检索到的第一批的计数,即100。我需要所有批次的计数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 =
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));
}
);
}
希望有帮助。如果有帮助,请接受作为答案。这将帮助其他有同样问题的人。