2011-07-12 21 views

答えて

2

テーブル名SQL Serverとして変数を使用することはできません。そのためにはdynamic SQLを使用する必要があります。

ダイナミックテーブル名を扱う方法はこちらをご覧ください。 http://www.sommarskog.se/dynamic_sql.html#objectnames

+0

私はそれを行う甘い方法を見つけました!すぐに分かち合うよ! –

4

あなたはpyodbcを使用しているので、あなたはSPROCを呼び出していないと仮定します。 私はPythonでSQL文字列を構築し、それをSQLに渡して実行することをお勧めします。

import pyodbc 
dbconn = pyodbc.connect(ConnectionString) 
c = dbconn.cursor() 

j = 'table1' #where table1 is entered, retreived, etc 
query = "Select * from %s" % j 
c.execute(query) 
result = c.fetchall() 
print 'Done' 
+2

テーブル名がユーザーの入力やブラウザのフィードバックから来ないように注意してください。これがSQLインジェクションのセットアップです。 –

+0

@マーク、あなたは素晴らしい点を作っています。しかし、少なくともSQLへの他のタイプの入力よりも、テーブル名のほうが幾分かぎりやすいです。 – TimothyAWiseman

関連する問題