~ubuntu-branches/debian/jessie/sqlalchemy/jessie

« back to all changes in this revision

Viewing changes to doc/dialects/mssql.html

  • Committer: Package Import Robot
  • Author(s): Piotr Ożarowski
  • Date: 2013-10-28 22:29:40 UTC
  • mto: (1.6.9)
  • mto: This revision was merged to the branch mainline in revision 35.
  • Revision ID: package-import@ubuntu.com-20131028222940-t6h277tm5kaiepk4
Tags: upstream-0.8.3
Import upstream version 0.8.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
    <script type="text/javascript">
21
21
      var DOCUMENTATION_OPTIONS = {
22
22
          URL_ROOT:    '../',
23
 
          VERSION:     '0.8.2',
 
23
          VERSION:     '0.8.3',
24
24
          COLLAPSE_MODINDEX: false,
25
25
          FILE_SUFFIX: '.html'
26
26
      };
67
67
    </div>
68
68
 
69
69
    <div id="docs-version-header">
70
 
        Release: <span class="version-num">0.8.2</span> | Release Date: July 3, 2013
 
70
        Release: <span class="version-num">0.8.3</span> | Release Date: October 26, 2013
71
71
 
72
72
 
73
73
    </div>
238
238
<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">sqlalchemy</span> <span class="kn">import</span> <span class="n">VARCHAR</span>
239
239
<span class="n">Column</span><span class="p">(</span><span class="s">&#39;login&#39;</span><span class="p">,</span> <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">32</span><span class="p">,</span> <span class="n">collation</span><span class="o">=</span><span class="s">&#39;Latin1_General_CI_AS&#39;</span><span class="p">))</span></pre></div>
240
240
</div>
241
 
<p>When such a column is associated with a <a class="reference internal" href="../core/schema.html#sqlalchemy.schema.Table" title="sqlalchemy.schema.Table"><tt class="xref py py-class docutils literal"><span class="pre">Table</span></tt></a>, the
 
241
<p>When such a column is associated with a <a class="reference internal" href="../core/metadata.html#sqlalchemy.schema.Table" title="sqlalchemy.schema.Table"><tt class="xref py py-class docutils literal"><span class="pre">Table</span></tt></a>, the
242
242
CREATE TABLE statement for this column will yield:</p>
243
243
<div class="highlight-python"><pre>login VARCHAR(32) COLLATE Latin1_General_CI_AS NULL</pre>
244
244
</div>
245
 
<p class="versionadded">
246
 
<span class="versionmodified">New in version 0.8: </span>Character collations are now part of the base string
 
245
<div class="versionadded">
 
246
<p><span>New in version 0.8: </span>Character collations are now part of the base string
247
247
types.</p>
248
248
</div>
 
249
</div>
249
250
<div class="section" id="limit-offset-support">
250
251
<h2>LIMIT/OFFSET Support<a class="headerlink" href="#limit-offset-support" title="Permalink to this headline">¶</a></h2>
251
252
<p>MSSQL has no support for the LIMIT or OFFSET keysowrds. LIMIT is
285
286
</div>
286
287
<div class="section" id="mssql-specific-index-options">
287
288
<span id="mssql-indexes"></span><h2>MSSQL-Specific Index Options<a class="headerlink" href="#mssql-specific-index-options" title="Permalink to this headline">¶</a></h2>
288
 
<p>The MSSQL dialect supports special options for <a class="reference internal" href="../core/schema.html#sqlalchemy.schema.Index" title="sqlalchemy.schema.Index"><tt class="xref py py-class docutils literal"><span class="pre">Index</span></tt></a>.</p>
 
289
<p>The MSSQL dialect supports special options for <a class="reference internal" href="../core/constraints.html#sqlalchemy.schema.Index" title="sqlalchemy.schema.Index"><tt class="xref py py-class docutils literal"><span class="pre">Index</span></tt></a>.</p>
289
290
<div class="section" id="clustered">
290
291
<h3>CLUSTERED<a class="headerlink" href="#clustered" title="Permalink to this headline">¶</a></h3>
291
292
<p>The <tt class="docutils literal"><span class="pre">mssql_clustered</span></tt> option  adds the CLUSTERED keyword to the index:</p>
292
293
<div class="highlight-python"><div class="highlight"><pre><span class="n">Index</span><span class="p">(</span><span class="s">&quot;my_index&quot;</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">mssql_clustered</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span></pre></div>
293
294
</div>
294
295
<p>would render the index as <tt class="docutils literal"><span class="pre">CREATE</span> <span class="pre">CLUSTERED</span> <span class="pre">INDEX</span> <span class="pre">my_index</span> <span class="pre">ON</span> <span class="pre">table</span> <span class="pre">(x)</span></tt></p>
295
 
<p class="versionadded">
296
 
<span class="versionmodified">New in version 0.8.</span></p>
 
296
<div class="versionadded">
 
297
<p><span>New in version 0.8.</span></p>
 
298
</div>
297
299
</div>
298
300
<div class="section" id="include">
299
301
<h3>INCLUDE<a class="headerlink" href="#include" title="Permalink to this headline">¶</a></h3>
301
303
<div class="highlight-python"><div class="highlight"><pre><span class="n">Index</span><span class="p">(</span><span class="s">&quot;my_index&quot;</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">mssql_include</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;y&#39;</span><span class="p">])</span></pre></div>
302
304
</div>
303
305
<p>would render the index as <tt class="docutils literal"><span class="pre">CREATE</span> <span class="pre">INDEX</span> <span class="pre">my_index</span> <span class="pre">ON</span> <span class="pre">table</span> <span class="pre">(x)</span> <span class="pre">INCLUDE</span> <span class="pre">(y)</span></tt></p>
304
 
<p class="versionadded">
305
 
<span class="versionmodified">New in version 0.8.</span></p>
 
306
<div class="versionadded">
 
307
<p><span>New in version 0.8.</span></p>
 
308
</div>
306
309
</div>
307
310
<div class="section" id="index-ordering">
308
311
<h3>Index ordering<a class="headerlink" href="#index-ordering" title="Permalink to this headline">¶</a></h3>
310
313
<div class="highlight-python"><div class="highlight"><pre><span class="n">Index</span><span class="p">(</span><span class="s">&quot;my_index&quot;</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">x</span><span class="o">.</span><span class="n">desc</span><span class="p">())</span></pre></div>
311
314
</div>
312
315
<p>would render the index as <tt class="docutils literal"><span class="pre">CREATE</span> <span class="pre">INDEX</span> <span class="pre">my_index</span> <span class="pre">ON</span> <span class="pre">table</span> <span class="pre">(x</span> <span class="pre">DESC)</span></tt></p>
313
 
<p class="versionadded">
314
 
<span class="versionmodified">New in version 0.8.</span></p>
315
 
<div class="admonition-see-also admonition seealso">
 
316
<div class="versionadded">
 
317
<p><span>New in version 0.8.</span></p>
 
318
</div>
 
319
<div class="admonition seealso">
316
320
<p class="first admonition-title">See also</p>
317
 
<p class="last"><a class="reference internal" href="../core/schema.html#schema-indexes-functional"><em>Functional Indexes</em></a></p>
 
321
<p class="last"><a class="reference internal" href="../core/constraints.html#schema-indexes-functional"><em>Functional Indexes</em></a></p>
318
322
</div>
319
323
</div>
320
324
</div>
336
340
server side defaults.   MS-SQL does not
337
341
allow the usage of OUTPUT INSERTED on tables that have triggers.
338
342
To disable the usage of OUTPUT INSERTED on a per-table basis,
339
 
specify <tt class="docutils literal"><span class="pre">implicit_returning=False</span></tt> for each <a class="reference internal" href="../core/schema.html#sqlalchemy.schema.Table" title="sqlalchemy.schema.Table"><tt class="xref py py-class docutils literal"><span class="pre">Table</span></tt></a>
 
343
specify <tt class="docutils literal"><span class="pre">implicit_returning=False</span></tt> for each <a class="reference internal" href="../core/metadata.html#sqlalchemy.schema.Table" title="sqlalchemy.schema.Table"><tt class="xref py py-class docutils literal"><span class="pre">Table</span></tt></a>
340
344
which has triggers:</p>
341
345
<div class="highlight-python"><div class="highlight"><pre><span class="n">Table</span><span class="p">(</span><span class="s">&#39;mytable&#39;</span><span class="p">,</span> <span class="n">metadata</span><span class="p">,</span>
342
346
    <span class="n">Column</span><span class="p">(</span><span class="s">&#39;id&#39;</span><span class="p">,</span> <span class="n">Integer</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="bp">True</span><span class="p">),</span>
430
434
<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">select</span><span class="p">([</span><span class="n">cast</span><span class="p">(</span><span class="s">&#39;some string&#39;</span><span class="p">,</span> <span class="n">String</span><span class="p">(</span><span class="n">collation</span><span class="o">=</span><span class="s">&#39;utf8&#39;</span><span class="p">))])</span>
431
435
<span class="go">SELECT CAST(:param_1 AS VARCHAR COLLATE utf8) AS anon_1</span></pre></div>
432
436
</div>
433
 
<p class="versionadded">
434
 
<span class="versionmodified">New in version 0.8: </span>Added support for COLLATE to all
 
437
<div class="versionadded">
 
438
<p><span>New in version 0.8: </span>Added support for COLLATE to all
435
439
string types.</p>
 
440
</div>
436
441
</li>
437
442
<li><strong>convert_unicode</strong> &#8211; <p>When set to <tt class="docutils literal"><span class="pre">True</span></tt>, the
438
443
<a class="reference internal" href="../core/types.html#sqlalchemy.types.String" title="sqlalchemy.types.String"><tt class="xref py py-class docutils literal"><span class="pre">String</span></tt></a> type will assume that
660
665
<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">select</span><span class="p">([</span><span class="n">cast</span><span class="p">(</span><span class="s">&#39;some string&#39;</span><span class="p">,</span> <span class="n">String</span><span class="p">(</span><span class="n">collation</span><span class="o">=</span><span class="s">&#39;utf8&#39;</span><span class="p">))])</span>
661
666
<span class="go">SELECT CAST(:param_1 AS VARCHAR COLLATE utf8) AS anon_1</span></pre></div>
662
667
</div>
663
 
<p class="versionadded">
664
 
<span class="versionmodified">New in version 0.8: </span>Added support for COLLATE to all
 
668
<div class="versionadded">
 
669
<p><span>New in version 0.8: </span>Added support for COLLATE to all
665
670
string types.</p>
 
671
</div>
666
672
</li>
667
673
<li><strong>convert_unicode</strong> &#8211; <p>When set to <tt class="docutils literal"><span class="pre">True</span></tt>, the
668
674
<a class="reference internal" href="../core/types.html#sqlalchemy.types.String" title="sqlalchemy.types.String"><tt class="xref py py-class docutils literal"><span class="pre">String</span></tt></a> type will assume that
767
773
<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">select</span><span class="p">([</span><span class="n">cast</span><span class="p">(</span><span class="s">&#39;some string&#39;</span><span class="p">,</span> <span class="n">String</span><span class="p">(</span><span class="n">collation</span><span class="o">=</span><span class="s">&#39;utf8&#39;</span><span class="p">))])</span>
768
774
<span class="go">SELECT CAST(:param_1 AS VARCHAR COLLATE utf8) AS anon_1</span></pre></div>
769
775
</div>
770
 
<p class="versionadded">
771
 
<span class="versionmodified">New in version 0.8: </span>Added support for COLLATE to all
 
776
<div class="versionadded">
 
777
<p><span>New in version 0.8: </span>Added support for COLLATE to all
772
778
string types.</p>
 
779
</div>
773
780
</li>
774
781
<li><strong>convert_unicode</strong> &#8211; <p>When set to <tt class="docutils literal"><span class="pre">True</span></tt>, the
775
782
<a class="reference internal" href="../core/types.html#sqlalchemy.types.String" title="sqlalchemy.types.String"><tt class="xref py py-class docutils literal"><span class="pre">String</span></tt></a> type will assume that
919
926
<tt class="docutils literal"><span class="pre">True</span></tt> unicode literals will be passed straight through.  This is an interim
920
927
flag that hopefully should not be needed when the unicode situation stabilizes
921
928
for unix + PyODBC.</p>
922
 
<p class="versionadded">
923
 
<span class="versionmodified">New in version 0.7.7: </span><tt class="docutils literal"><span class="pre">supports_unicode_binds</span></tt> parameter to <tt class="docutils literal"><span class="pre">create_engine()</span></tt>.</p>
 
929
<div class="versionadded">
 
930
<p><span>New in version 0.7.7: </span><tt class="docutils literal"><span class="pre">supports_unicode_binds</span></tt> parameter to <tt class="docutils literal"><span class="pre">create_engine()</span></tt>.</p>
 
931
</div>
924
932
</div>
925
933
</div>
926
934
<div class="section" id="module-sqlalchemy.dialects.mssql.mxodbc">
956
964
INSERT, UPDATE, and DELETE statements, and uses the escaped string mode for
957
965
all other statements.</p>
958
966
<p>This behavior can be controlled via
959
 
<a class="reference internal" href="../core/expression_api.html#sqlalchemy.sql.expression.Executable.execution_options" title="sqlalchemy.sql.expression.Executable.execution_options"><tt class="xref py py-meth docutils literal"><span class="pre">execution_options()</span></tt></a> using the
 
967
<a class="reference internal" href="../core/selectable.html#sqlalchemy.sql.expression.Executable.execution_options" title="sqlalchemy.sql.expression.Executable.execution_options"><tt class="xref py py-meth docutils literal"><span class="pre">execution_options()</span></tt></a> using the
960
968
<tt class="docutils literal"><span class="pre">native_odbc_execute</span></tt> flag with a value of <tt class="docutils literal"><span class="pre">True</span></tt> or <tt class="docutils literal"><span class="pre">False</span></tt>, where a
961
969
value of <tt class="docutils literal"><span class="pre">True</span></tt> will unconditionally use native bind parameters and a value
962
970
of <tt class="docutils literal"><span class="pre">False</span></tt> will unconditionally use string-escaped parameters.</p>
1037
1045
 
1038
1046
    <div id="docs-copyright">
1039
1047
        &copy; <a href="../copyright.html">Copyright</a> 2007-2013, the SQLAlchemy authors and contributors.
1040
 
        Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
 
1048
        Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.2b1.
1041
1049
    </div>
1042
1050
</div>
1043
1051