Динамический SQL - ДОЛЖНОСТНОЕ ЛИЦО (@SQL) по сравнению с ДОЛЖНОСТНЫМ ЛИЦОМ SP_EXECUTESQL (@SQL)

вам не нужно открывать файл много раз, и вы должны закрыть файлы в конце вашей программы. Ниже я попробовал надеяться, что это сработает для вас:

d1 = {}
with open(r'classgrades.txt','r') as fp:
    for line in fp:
        contents = line.strip().split(' ')
        # create mapping of student and his numbers
        d1[contents[0]] = map(int,contents[1:])

with open(r'classscores.txt','w') as fp:
    for key, item in d1.items():
        biggest = min(item)
        smallest = max(item)
        print(biggest - smallest)
        # average of all numbers
        avg = sum(item)/len(item)
        fp.write("%s %s\n"%(key,avg))
90
задан Anup Kattel 16 April 2015 в 06:54
поделиться

2 ответа

sp_executesql, более вероятно, будет способствовать повторному использованию плана запросов. При использовании sp_executesql, параметры явно определяются в подписи вызова. Эта превосходная статья descibes этот процесс .

часто процитированной ссылкой для многих аспектов динамического sql является Erland Sommarskog, должен читать: " Проклятие и Благословения Динамического SQL".

93
ответ дан Mitch Wheat 24 November 2019 в 07:06
поделиться

Большая вещь о SP_EXECUTESQL состоит в том, что он позволяет Вам создавать параметризированные запросы, который очень хорош, если Вы заботитесь о Внедрении SQL.

20
ответ дан DJ. 24 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: