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. 이렇게 하면 실제 테이블 및 데이터에 있는 경우에 Access 테이블에 대해 작동 하 여 액세스 응용 프로그램 SQL ServerSQL Server 또는 SQL Azure입니다.This lets 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 will be 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 will appear with a small link icon. Access에서는 테이블에 "연결" 아이콘이 표시 됩니다.In Access, the tables will appear with a "linked" icon. 이것이 가리키는 화살표가 있는 구형입니다.This 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. 대형 테이블에 대 한 즉 모든 데이터를 한 번에 검색 되지 않습니다.For large tables, this means that all the data is not retrieved at one time. 그러나 테이블 검색 한 후 액세스 필요에 따라 추가 데이터를 검색 합니다.However, as you browse through the table, Access will retrieve additional data as necessary.

중요

Azure 데이터베이스와 함께 access 테이블을 연결 하려면 SQL Server Native Client(SNAC) 버전 10.5 필요 이상.In order to link access tables with azure database, we 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 then you 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 earlier in this topic. 또는 액세스를 사용 하 여 테이블을 업데이트할 수 있습니다.Or, you can 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, providing 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입니다.The application depends on functions that do not exist in SQL ServerSQL Server or SQL Azure. 이렇게 하면 SELECT 쿼리를 실행 하려면 로컬 테이블 아래로 Jet 됩니다.This 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 will have 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 let the user 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 that are 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