【发布时间】:2017-06-20 02:40:08
【问题描述】:
大家好,我正在尝试在 for 循环中创建一个 while 循环。该代码将为我生成一堆 SQL Drop 索引语句,因此除了表名之外我无需输入任何内容。 excel 文件将包含完成 Drop Index 语句所需的所有信息。这将节省我几个小时的打字时间。
预期输出: 运行在循环中工作的代码,它将询问我一个新的表名,然后运行代码并询问我另一个表名或完成。
这是实际使用的代码
from openpyxl import load_workbook
wb = load_workbook(filename='UnusedIndexes.xlsx')
ws = wb['Indexes1']
ws.cell(row=2, column=2)
ws.cell(row=2, column=2).value
tablename = input("What Table Do you Want: ")
for i in range(1,200,1):
if ws.cell(row=i, column=1).value == tablename:
print("IF EXISTS (SELECT * FROM sys.indexes WHERE NAME = N'[", ws.cell(row = i, column = 2).value, "]')\nDROP INDEX [" + ws.cell(row = i, column = 2).value + "] ON "
+ "[dbo].[" + tablename + "]\nGO\n" )
这是我正在使用的代码,试图让 while 循环正常工作。
from openpyxl import load_workbook
wb = load_workbook(filename='UnusedIndexes.xlsx')
ws = wb['Indexes1']
ws.cell(row=2, column=2)
ws.cell(row=2, column=2).value
tablename = input("What Table Do you Want: ")
finished = 'n'
while finished == 'n':
for i in range(1,200,1):
if ws.cell(row=i, column=1).value == tablename:
print("IF EXISTS (SELECT * FROM sys.indexes WHERE NAME = N'[", ws.cell(row = i, column = 2).value, "]')\nDROP INDEX [" + ws.cell(row = i, column = 2).value + "] ON "
+ "[dbo].[" + tablename + "]\nGO\n" )
else:
finished = input("Would you like to enter a new tablename(y/n): ")
if finished == 'y':
break
Excel 文件格式
- Excel 文件名:UnusedIndexes.xlsx
- 工作表名称:索引1
- A 列:表名
- B 列:索引名称
您可以在 A 中使用任何文本(字符串)值并成为。只需要在 For 循环中保留 Print 语句的功能
【问题讨论】:
标签: python-3.x while-loop