Sql-Server
用 SQL Server 替換用於訪問連結表的 MS-Access 前端?
是否可以像在 MS-Access 中那樣使用 SQL Server / SQL Server Management Studio 跨連結表進行查詢?
至少可以說,MS-Access 前端令人沮喪且耗時,這促使我尋找替代方案。我開始使用 SQuirreL SQL,並且對它非常滿意,但它沒有連結表功能,因此您在可以執行的查詢方面受到了一些限制。
另外,您能否為我提供有關如何設置類似內容的教程或書籍的建議?
SQL Server Management Studio 允許您創建多個版本的查詢,您可以在其中同時查看 SQL 文本和結果。
您可以使用點表示法來引用同一伺服器上不同數據庫中的表,例如:
SELECT * FROM database.schema.table
如果需要從多個伺服器查詢數據,可以在 SQL Server 中創建連結伺服器,以提供 Access 前端的所有功能。這允許您使用 4 部分的點表示法,例如:
SELECT * FROM server.database.schema.table
例如,此程式碼在本地 SQL Server 上創建 2 個數據庫,其中有 2 個表,每個表包含一條記錄。最後
SELECT
將 2 個表中的數據連接到單個輸出中:CREATE DATABASE Test1 ON PRIMARY (NAME = 'Test1_Data' , FILENAME = 'C:\Temp\Test1_data.mdf' , SIZE = 10MB , MAXSIZE = UNLIMITED , FILEGROWTH = 10MB ) LOG ON (NAME = 'Test1_Log' , FILENAME = 'C:\Temp\Test1_log.mdf' , SIZE = 10MB , MAXSIZE = UNLIMITED , FILEGROWTH = 10MB ); CREATE DATABASE Test2 ON PRIMARY (NAME = 'Test2_Data' , FILENAME = 'C:\Temp\Test2_data.mdf' , SIZE = 10MB , MAXSIZE = UNLIMITED , FILEGROWTH = 10MB ) LOG ON (NAME = 'Test2_Log' , FILENAME = 'C:\Temp\Test2_log.mdf' , SIZE = 10MB , MAXSIZE = UNLIMITED , FILEGROWTH = 10MB ); GO USE Test1; GO CREATE TABLE TestTable1 ( ID INT NOT NULL PRIMARY KEY CONSTRAINT PK_TestTable1 IDENTITY(1,1) , TestText nvarchar(255) ); INSERT INTO TestTable1 (TestText) VALUES ('This is table 1 in database 1'); USE Test2; GO CREATE TABLE TestTable2 ( ID INT NOT NULL PRIMARY KEY CONSTRAINT PK_TestTable2 IDENTITY(1,1) , TestText nvarchar(255) ); INSERT INTO TestTable2 (TestText) VALUES ('This is table 2 in database 2'); SELECT * FROM Test1.dbo.TestTable1 UNION ALL SELECT * FROM Test2.dbo.TestTable2;
輸出是:
ID TestText 1 This is table 1 in database 1 1 This is table 2 in database 2
由於您在評論中指出您可能想要完全替換前端,請查看Visual Studio Lightswitch。我目前正在使用它,它很棒……對於成熟的 .NET 開發人員來說太簡單了,但對於無需開發團隊就可以在某些數據上投入前端非常有用。