我從Syn123的回答改編的SQL和這裏是我到目前爲止有:
SELECT c.TABLE_NAME, c.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS AS c
INNER JOIN INFORMATION_SCHEMA.Tables AS t ON t.TABLE_NAME = c.TABLE_NAME
WHERE (c.DATA_TYPE IN ('char', 'nchar', 'varchar', 'nvarchar', 'text', 'ntext')) AND (t.TABLE_TYPE = 'TABLE')
我遇到的問題是,我不能做子查詢與SQL CE,因此可以」從結果集中選擇。如果您有權訪問.MDF數據庫文件,則可以編寫一個小型控制檯應用程序,以使用上述SQL返回的集合搜索特定的關鍵字。您需要一種方法來創建動態SQL,並且SQL CE不支持EXEC,所以這很困難,而且很可能不可能。
編輯:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlServerCe;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SQLCESearch
{
class Program
{
static void Main(string[] args)
{
SearchText("Nancy");
Console.ReadKey();
}
private static void SearchText(string searchText)
{
string connStr = "Data Source=Northwind40.sdf;Persist Security Info=False;";
DataTable dt = new DataTable();
try
{
string sql = "SELECT c.TABLE_NAME, c.COLUMN_NAME ";
sql += "FROM INFORMATION_SCHEMA.COLUMNS AS c ";
sql += "INNER JOIN INFORMATION_SCHEMA.Tables AS t ON t.TABLE_NAME = c.TABLE_NAME ";
sql += "WHERE (c.DATA_TYPE IN ('char', 'nchar', 'varchar', 'nvarchar', 'text', 'ntext')) AND (t.TABLE_TYPE = 'TABLE') ";
SqlCeDataAdapter da = new SqlCeDataAdapter(sql, connStr);
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
string dynSQL = "SELECT [" + dr["COLUMN_NAME"] + "]";
dynSQL += " FROM [" + dr["TABLE_NAME"] + "]";
dynSQL += " WHERE [" + dr["COLUMN_NAME"] + "] LIKE '%" + searchText + "%'";
DataTable result = new DataTable();
da = new SqlCeDataAdapter(dynSQL, connStr);
da.Fill(result);
foreach (DataRow r in result.Rows)
{
Console.WriteLine("Table Name: " + dr["TABLE_NAME"]);
Console.WriteLine("Column Name: " + dr["COLUMN_NAME"]);
Console.WriteLine("Value: " + r[0]);
}
}
}
catch (Exception e)
{
Console.Write(e.Message);
}
}
}
}
有,將打印出任何表/列包含文本的價值真正快速和骯髒的控制檯應用程序。您可以調整它以適應您的需求。我希望這有幫助。
您使用的是哪個版本的SQL Server CE? – 2013-03-04 20:26:30
你是如何「試圖尋找一張桌子」?你是什麼「不見」?這些鏈接中的每一個似乎都按照你的要求去做;你有嘗試過嗎?發生了什麼? SQL CE本身應該能夠做你想做的事情,爲什麼你必須通過WebMatrix? – 2013-03-04 20:31:41
@CameronTinker我希望這回答你的問題,但我使用WebMatrix 2,如果有幫助。 – VoidKing 2013-03-04 20:31:51