SQL Server-Azure SQL DB (AccessToSQL)에 대 한 액세스 응용 프로그램 연결Linking Access applications to SQL Server - Azure SQL DB (AccessToSQL)

기존 Access 응용 프로그램을 사용 하려는 경우 SQL ServerSQL Server, 원래 Access 테이블을 마이그레이션된 연결할 수 있습니다 SQL ServerSQL Server 또는 SQL Azure 테이블입니다.If you want to use your existing Access applications with SQL ServerSQL Server, you can link your original Access tables to the migrated SQL ServerSQL Server or SQL Azure tables. 연결을 수정 하 Access 데이터베이스에서 데이터를 사용 하는 쿼리, 폼, 보고서 및 데이터 액세스 페이지는 SQL ServerSQL Server 또는 Access 데이터베이스의 데이터 대신 SQL Azure 데이터베이스입니다.Linking modifies your Access database so that your queries, forms, reports, and data access pages use the data in the SQL ServerSQL Server or SQL Azure database instead of the data in your Access database.

참고

Access 테이블 액세스를 유지 되지만와 함께 업데이트 되지 않습니다 SQL ServerSQL Server 또는 SQL Azure를 업데이트 합니다.Your Access tables remain in Access, but are not updated together with SQL ServerSQL Server or SQL Azure updates. 테이블을 연결 하 고 기능을 확인 한 후에 액세스 테이블을 삭제 하는 것이 좋습니다.After you link the tables and verify functionality, you might want to delete your Access tables.

액세스 및 SQL Server 테이블을 연결Linking Access and SQL Server tables

Access 테이블을 연결할 때는 SQL ServerSQL Server 또는 SQL Azure 테이블, Jet 데이터베이스 엔진 연결 정보 및 테이블 메타 데이터를 저장 하지만 데이터에 저장 됩니다 SQL ServerSQL Server 또는 SQL Azure입니다.When you link an Access table to a SQL ServerSQL Server or SQL Azure table, the Jet database engine stores connection information and table metadata, but the data is stored in SQL ServerSQL Server or SQL Azure. 이 연결을 선택 하면 실제 테이블 및 데이터에 있는 경우에 액세스 테이블에 대 한 액세스의 응용 프로그램 작동 SQL ServerSQL Server 또는 SQL Azure입니다.This linking allows your Access applications operate against the Access tables even though the actual tables and data are in SQL ServerSQL Server or SQL Azure.

참고

사용 하는 경우 SQL ServerSQL Server 암호 인증을 연결 된 액세스 테이블에 일반 텍스트로 저장 됩니다.If you use SQL ServerSQL Server Authentication, your password is stored in clear text on the linked Access tables. Windows 인증을 사용 하는 것이 좋습니다.We recommend using Windows Authentication.

테이블을 연결 하려면To link tables

  1. 액세스 메타 데이터 탐색기에서 연결 하려는 테이블을 선택 합니다.In Access Metadata Explorer, select the tables that you want to link.

  2. 마우스 오른쪽 단추로 클릭 테이블를 선택한 후 링크합니다.Right-click Tables, and then select Link.

SQL ServerSQL ServerMigration Assistant (SSMA) 액세스에 대 한 원래 Access 테이블을 백업 하 고 연결된 된 테이블을 만듭니다. Migration Assistant (SSMA) for Access backs up the original Access table and creates a linked table.

테이블에 연결한 후 SSMA에 테이블이 작은 링크 아이콘으로 나타납니다.After you link the tables, the tables in SSMA appear with a small link icon. Access에서 테이블와 가리키는 화살표가 있는 구형 "연결 된" 아이콘을 표시 합니다.In Access, the tables appear with a "linked" icon, which is a globe with an arrow pointing to it.

Access에서 테이블을 열 때 데이터는 키 집합 커서를 사용 하 여 검색 됩니다.When you open a table in Access, the data is retrieved using a keyset cursor. 따라서 대형 테이블에 대 한 모든 데이터가 검색 되지 않습니다 한 번에.As a result, for large tables, all the data is not retrieved at one time. 그러나 테이블 검색 한 후에 액세스 필요에 따라 추가 데이터를 검색 합니다.However, as you browse through the table, Access retrieves additional data as necessary.

중요

Azure 데이터베이스와 함께 access 테이블을 연결 하려면 SQL Server Native Client(SNAC) 버전 10.5 이상.To link access tables with an Azure database, you need SQL Server Native Client(SNAC) version 10.5 or above.
SNAC의 최신 버전을 가져올 수 Microsoft® SQL Server® 2008 R2 기능 팩합니다.You can obtain the latest version of SNAC from Microsoft® SQL Server® 2008 R2 Feature Pack.

Access 테이블 연결 해제Unlinking Access tables

Access 테이블에서 연결을 해제할는 SQL ServerSQL Server 또는 SQL Azure 테이블, SSMA 원래 Access 테이블 및 해당 데이터를 복원 합니다.When you unlink an Access table from a SQL ServerSQL Server or SQL Azure table, SSMA restores the original Access table and its data.

테이블의 연결을 해제 하려면To unlink tables

  1. 액세스 메타 데이터 탐색기에서 연결을 해제 하려는 테이블을 선택 합니다.In Access Metadata Explorer, select the tables that you want to unlink.

  2. 마우스 오른쪽 단추로 클릭 테이블를 선택한 후 Unlink합니다.Right-click Tables, and then select Unlink.

다른 서버에 테이블을 연결합니다.Linking tables to a different server

Access 테이블 한 SQL Server 인스턴스에 연결 하면 나중에 다른 인스턴스에 링크를 변경 하려는 경우에 테이블을 다시 링크 해야 합니다.If you have linked the Access tables to one SQL Server instance and you later want to change the links to another instance, you must relink the tables.

다른 서버에 연결 하는 테이블To link tables to a different server

  1. 액세스 메타 데이터 탐색기에서 연결을 해제 하려는 테이블을 선택 합니다.In Access Metadata Explorer, select the tables that you want to unlink.

  2. 마우스 오른쪽 단추로 클릭 테이블 선택한 후 Unlink합니다.Right-click Tables and then select Unlink.

  3. 클릭는 SQL Server에 다시 연결 단추입니다.Click the Reconnect to SQL Server button.

  4. 인스턴스에 연결할 SQL ServerSQL Server 또는 SQL Azure 액세스 테이블을 연결 하려면.Connect to the instance of SQL ServerSQL Server or SQL Azure to which you want to link the Access tables.

  5. 액세스 메타 데이터 탐색기에서 연결 하려는 테이블을 선택 합니다.In Access Metadata Explorer, select the tables that you want to link.

  6. 마우스 오른쪽 단추로 클릭 테이블를 선택한 후 링크합니다.Right-click Tables, and then select Link.

연결 된 테이블을 업데이트합니다.Updating linked tables

경우는 SQL ServerSQL Server 또는 SQL Azure 테이블 정의가 변경 되는의 연결을 해제 하 고 다음이 항목의 앞에 나온 절차를 사용 하 여 SSMA에 테이블 다시 연결할 수 있습니다.If the SQL ServerSQL Server or SQL Azure table definitions are altered, you can unlink and then re-link the tables in SSMA by using the procedures shown previously in this topic. 액세스를 사용 하 여 테이블을 업데이트할 수도 있습니다.You can also update the tables by using Access.

액세스를 사용 하 여 연결 된 테이블을 업데이트 하려면To update linked tables by using Access

  1. Access 데이터베이스를 엽니다.Open the Access database.

  2. 개체 목록에서 클릭 테이블합니다.In the Objects list, click Tables.

  3. 연결된 된 테이블을 마우스 오른쪽 단추로 클릭 한 다음 선택 연결 테이블 관리자합니다.Right-click a linked table, and then select Linked Table Manager.

  4. 업데이트 하 고 클릭 하려는 각 연결 된 테이블 옆 확인란 선택 확인합니다.Select the check box next to each linked table that you want to update, and then click OK.

마이그레이션 후 관련 문제Possible post-migration issues

다음 섹션에 대 한 액세스를 데이터베이스를 마이그레이션한 후 기존 Access 응용 프로그램에서 발생할 수 있는 목록 문제 SQL ServerSQL Server 또는 SQL Azure의 원인 및 해결 방법을 함께 테이블에 연결 합니다.The following sections list issues that might occur in existing Access applications after you migrate databases from Access to SQL ServerSQL Server or SQL Azure and then link the tables, together with the causes and the resolutions.

연결 된 테이블 성능 저하Slow performance with linked tables

원인: 일부 쿼리 속도가 느려질 수 있습니다 업사이징 후 이유는 다음과 같습니다.Cause: Some queries might be slow after upsizing for the following reasons:

  • 응용 프로그램에 존재 하지 않는 함수에 따라 달라 집니다 SQL ServerSQL Server 또는 SQL Azure는 SELECT 쿼리를 실행 하려면 로컬 테이블 아래로 Jet입니다.The application depends on functions that do not exist in SQL ServerSQL Server or SQL Azure, which causes Jet to pull down tables locally to run a SELECT query.

  • 업데이트 하거나 많은 행을 삭제 하는 쿼리는 각 행에 대해 매개 변수가 있는 쿼리로 Jet가 전송 됩니다.Queries that update or delete many rows are sent by Jet as a parameterized query for each row.

해결 방법: 통과 쿼리, 저장된 프로시저 또는 뷰를 실행이 느린 쿼리를 변환 합니다.Resolution: Convert the slow-running queries to pass-through queries, stored procedures, or views. 통과 쿼리를 변환에 다음과 같은 문제가 있습니다.Converting to pass-through queries has the following issues:

  • 통과 쿼리를 수정할 수 없습니다.Pass-through queries cannot be modified. 쿼리 결과 수정 하거나 새 레코드를 추가에서 수행 되어야 합니다는 다른 방법으로와 같은 명시적 함으로써 수정 또는 추가 쿼리에 바인딩된 폼에 단추입니다.Modifying the query result or adding new records must be done in an alternative way, such as by having explicit Modify or Add buttons on your form that is bound to the query.

  • 일부 쿼리 사용자 입력이 필요 하지만 통과 쿼리는 사용자 입력을 지원 하지 않습니다.Some queries require user input, but pass-through queries do not support user input. 입력된 컨트롤으로 사용 되는 형식 또는 매개 변수를 묻는 메시지를 표시 하는 VBA 코드에 대 한 Visual Basic에서 사용자 입력을 얻을 수 있습니다.User input can be obtained by Visual Basic for Applications (VBA) code that prompts for parameters, or by a form that is used as an input control. 두 경우 모두, VBA 코드는 서버에 대 한 사용자 입력을 사용 하 여 쿼리를 제출합니다.In both cases, the VBA code submits the query with the user input to the server.

각 자동 증가 열에는 레코드가 업데이트 될 때까지 업데이트 되지 않습니다.Auto-increment columns are not updated until the record is updated

원인: RecordSet.AddNew Jet에서를 호출한 후 자동 증분 열의 사용할 수 전에 레코드가 업데이트 됩니다.Cause: After calling RecordSet.AddNew in Jet, the auto increment column is available before the record is updated. 이것은에 사실이 아닙니다 SQL ServerSQL Server 또는 SQL Azure입니다.This is not true in SQL ServerSQL Server or SQL Azure. Id 열의 새 값의 새 값을 새 레코드를 저장 한 후에 사용할 수 있습니다.The new value of the identity column new value is available only after saving the new record.

해결 방법: id 필드에 액세스 하기 전에 다음 Visual Basic for VBA 코드를 실행 합니다.Resolution: Run the following Visual Basic for Applications (VBA) code before accessing the identity field:

Recordset.Update  
Recordset.Move 0,  
Recordset.LastModified  

새 레코드를 사용할 수 없는 경우New records are not available

원인: 레코드를 추가 하는 경우는 SQL ServerSQL Server 또는 테이블의 고유 인덱스 필드에 기본값을 할당 하지 않으면 값을 해당 필드에 새 레코드 나타나지 않으면에서 테이블을 다시 열 때까지 경우 VBA를 사용 하 여 SQL Azure 테이블 SQL ServerSQL Server 또는 SQL Azure입니다.Cause: When you add a record to a SQL ServerSQL Server or SQL Azure table by using VBA, if the table's unique index field has a default value and you do not assign a value to that field, the new record does not appear until you reopen the table in SQL ServerSQL Server or SQL Azure. 새 레코드의 값을 가져오는 하려고 하면 다음과 같은 오류 메시지가 나타납니다.If you try to obtain a value from the new record, you receive the following error message:

Run-time error '3167' Record is deleted.

해결 방법: 열 때는 SQL ServerSQL Server 또는 VBA 코드를 사용 하 여 테이블을 포함 하는 SQL Azure는 dbSeeChanges 다음 예제와 같이 옵션:Resolution: When you open the SQL ServerSQL Server or SQL Azure table by using VBA code, include the dbSeeChanges option, as in the following example:

Set rs = db.OpenRecordset("TestTable", dbOpenDynaset, dbSeeChanges)

마이그레이션 후 일부 쿼리는 사용자가 수 없는 새 레코드를 추가 하려면After migration, some queries will not allow the user to add a new record

원인: 쿼리를 사용 하 여 새 값 쿼리 고유 인덱스에 포함 된 모든 열이 없는 경우 추가할 수 없습니다.Cause: If a query does not include all columns that are included in a unique index, you cannot add new values by using the query.

해결 방법: 고유 인덱스를 하나 이상에 포함 된 모든 열에 쿼리 포함 되어 있는지 확인 합니다.Resolution: Ensure that all columns included in at least one unique index are part of the query.

액세스할 수 있는 연결 된 테이블 스키마를 수정할 수 없습니다.You cannot modify a linked table schema with Access

원인: 연결 테이블을 데이터 마이그레이션 후 사용자 Access에서 테이블의 스키마를 수정할 수 없습니다.Cause: After migrating data and linking tables, the user cannot modify the schema of a table in Access.

해결 방법: 테이블 스키마를 사용 하 여 수정 SQL Server Management StudioSQL Server Management Studio, 다음 access에서 연결을 업데이트 합니다.Resolution: Modify the table schema by using SQL Server Management StudioSQL Server Management Studio, and then update the link in Access.

원인: 마이그레이션한 후 데이터 열에 대 한 하이퍼링크 기능이 손실 및 간단 하 게 nvarchar (max) 열입니다.Cause: After migrating data, hyperlinks in columns lose their functionality and become simple nvarchar(max) columns.

해결 방법: 없음.Resolution: None.

Access에서 일부 SQL Server 데이터 형식은 지원 되지 않습니다.Some SQL Server data types are not supported by Access

원인: 나중에 업데이트 하는 경우 프로그램 SQL ServerSQL Server 또는 Access에서 지원 되지 않는 데이터 형식을 포함 하는 SQL Azure 테이블 액세스의 테이블을 열 수 없습니다.Cause: If you later update your SQL ServerSQL Server or SQL Azure tables to contain data types that are not supported by Access, you cannot open the table in Access.

해결 방법: 지원 되는 데이터 형식에는 행만 반환 하는 액세스 쿼리를 정의할 수 있습니다.Resolution: You can define an Access query that returns only those rows with supported data types.

참고 항목See also

SQL Server에 대 한 액세스 데이터베이스 마이그레이션Migrating Access Databases to SQL Server