<p>如果要在单引号字符串中使用单引号,则需要通过在引号前添加<code>\</code>或使用双引号字符串来对其进行转义。在</p>
<p>示例:</p>
<pre class="lang-py prettyprint-override"><code>import pyodbc
conn = pyodbc.connect('Driver={SQL Server};'
'Server=SERVERNAME;'
'Database=DATABASENAME;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
cursor.execute("INSERT INTO DATABASENAME.dbo.TABLE(Name, Age, City) VALUES ('Alan', '30', 'London')")
</code></pre>
<p>如果要将更改保存到数据库中,还需要在连接上调用<a href="https://github.com/mkleehammer/pyodbc/wiki/Getting-started#inserting-data" rel="nofollow noreferrer">^{<cd2>}</a>,或者将<code>autocommit</code>设置为<code>True</code>:</p>
^{pr2}$
<p>如果要检索结果行,需要先选择它,例如:</p>
<pre class="lang-py prettyprint-override"><code>cursor.execute("SELECT * FROM DATABASENAME.dbo.TABLE")
for row in cursor:
print(row)
</code></pre>
<p>或者在您的<code>INSERT</code>语句中使用<a href="https://docs.microsoft.com/en-us/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-2017" rel="nofollow noreferrer">^{<cd5>}</a>:</p>
<pre class="lang-py prettyprint-override"><code>cursor.execute("""
INSERT INTO DATABASENAME.dbo.TABLE(Name, Age, City)
OUTPUT Inserted.Name, Inserted.Age, Inserted.City
VALUES ('Alan', '30', 'London')
""")
for row in cursor:
print(row)
</code></pre>
<p>代码片段的完整示例:</p>
<pre class="lang-py prettyprint-override"><code>import pyodbc
conn = pyodbc.connect('Driver={SQL Server};'
'Server=SERVERNAME;'
'Database=DATABASENAME;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
cursor.execute("""
INSERT INTO DATABASENAME.dbo.TABLE(Name, Age, City)
OUTPUT Inserted.Name, Inserted.Age, Inserted.City
VALUES ('Alan', '30', 'London')
""")
for row in cursor:
print(row)
conn.commit()
</code></pre>