2017-11-14 3 views
-1

すべてのテーブルは、同じ構造の同じ列名を持ちます。ここでAccessデータベースのすべてのテーブルで同じクエリを実行するにはどうすればよいですか?

はコードです:

UPDATE Table1 INNER JOIN TableX ON Table1.Column1= TableX.Column1 SET Table1.Column2 = TableX.Column2

しかし、私はすべてのテーブルの上にこのコードを実行したいと思います:それは、私がよく理解場合は表2、表3、表4 .... Table30

+0

あなたの要件が明確ではないが、所望の出力を提供してください。質問がうまくいかない理由を説明してください。 – Stephen

+0

あなたは何を達成しようとしているのかも説明できますか? –

+0

たとえば、50個のテーブルがあります。各テーブルには、ColumnName_Xという同じ列名が含まれています。この列名からすべての値を表示したいとします。 –

答えて

0

それはあなたのために働く...

SELECT AllTables.* 
FROM AllTables 
WHERE AllTables.ColumnName_X = AllTables.ColumnName_Y 
0

はおそらくUNION ALL

を考えます
SELECT ColumnName_X 
FROM table1 
WHERE ..... 
UNION ALL 
SELECT ColumnName_X 
FROM table2 
WHERE ..... 

私のコメントによると、あなたの要件は明確ではありません。

+0

SELECT Column1 FROM UNION ALL(表1、表2、表3、表4) WHERE Column1 = Column2これに対応するソリューションはありますか? –

+0

@DemenyiNorbertは不可能です。私が説明したように最善の賭けをしている。 – Stephen

+0

@DemenyiNorbert 'Column2'はどこから来ますか?同じテーブル? – Stephen

-1

SELECT 
    sys.columns.name AS ColumnName, 
    sys.tables.name AS TableName, 
    schema_name (sys.tables.schema_Id) as schemaName 
FROM 
    sys.columns 
JOIN sys.tables ON 
    sys.columns.object_id = sys.tables.object_id 
WHERE 
    sys.columns.name = 'ColumnName' 
    --and schema_name (sys.tables.schema_Id) = 'schemaName' 

テーブルと特定の列(COLUMNX)を含むそのスキーマのリストを取得し、出力を次のクエリを使用する:(COLUMNXがIDの場合)IDの値を取得する

ColumnName TableName schemaName 
ID   MusicApp dbo 
id   employ  dbo 

を#temptableに出力された上記のクエリを格納し、ループを使用して動的にフェッチすることができます。

これがあなたを助けてくれることを願っています:)

+0

私はこのようないくつかをしたいと思います:\t SELECTの列1 FROM UNION ALL(表1、表2、表3、表4)WHERE Column1 = Column2またはSELECT Column1 FROM sys.tables WHERE Column1 = Column2 –

+0

ユーザーはAccessで作業していますSQLサーバー。 –

0

ここでの答えのほとんどは、SQLサーバーを想定しています。このタグはこの質問の一部ではなく、動作しません。

あなたのテーブルがtable30するTABLE1を命名している場合、これは動作するはずです:

Dim strSQL  As String 
Dim i   As Integer 
Dim strTable  As String 

For i = 1 To 10 
    strTable = "Table" & i 
    strSQL = "update " & strTable & _ 
      " inner join TableX on " & strTable & ".column1 = TableX.Column1" & _ 
      " SET " & strTable & ".Column2 = TaxbleX.Column2" 
Debug.Print strSQL 

CurrentDb.Execute strSQL 

Next i 
関連する問題