Linking Tables in SQL 2008

I am running SQL server 2008 and want to link to a table in Access 2007. I have read many articles but most say to import from Access into SQL. Importing the table will not serve my needs as the data will not be dynamic. Is it possible to link to an Access
table from SQL?

You can create a linked server in SQL Server to connect to Access and query the table in Access
YOu need to use the OLE DB provider for Jet inorder for Access.
Regards, Ashwin Menon My Blog - http:\\

Similar Messages

  • Linked Server from SQL 2008 to Connect to 2012 read only replica never works

    I have two Production Database Servers
    1. SQLServer2008 (2 Nodes Cluster)
    2. SQLServer2012 with 2 read only replica (3 Nodes Cluster)
    I would like to draw a line here, We have routing table and URL working perfectly fine. 
    We have tested LINKED Server from 2012 Box to production Server by Specifying APPLICATIONINTENT = ReadOnly; it works perfectly fine, the routing is being used.
    When we create linked server from SQL Server 2008 Box (Please note we have installed SQL Server 2012 Client tools on this box and Restarted the Servers) using the below script
    USE [master]
    EXEC master.dbo.sp_dropserver @server=N'AGL1', @droplogins='droplogins'
    EXEC master.dbo.sp_addlinkedserver @server = N'AGL1'
    Linked Server is created, Now when I run the Query 
    exec ('select @@servername') at AGL1
    It always brings the Primary READ/WRITE node name only, after lots of research I found that, this linked Server is always using SQL Native Client 10.0 only, even after creating Linked Server using SNC 11, That is the reason it is not going to routing
    table. Its always connecting to Primary node.
    Below is the way I found it, on 2012 Production Server I executed below Query
    SELECT session_id, protocol_type, driver_version = 
    CASE SUBSTRING(CAST(protocol_version AS BINARY(4)), 1,1)
    WHEN 0x70 THEN 'SQL Server 7.0'
    WHEN 0x71 THEN 'SQL Server 2000'
    WHEN 0x72 THEN 'SQL Server 2005'
    WHEN 0x73 THEN 'SQL Server 2008'
    ELSE 'SQL Server 2012' 
    END,client_net_address ,client_tcp_port,local_tcp_port ,T.text
    FROM sys.dm_exec_connections
    CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS T
    The help is taken from msdn (Link Provided below) for the above Query
    and I found it always uses SQL Server 2008 SNC.
    My Question is, is there a way to force SQL Server to use SQL Server Native Client 11.
    Has anyone tried this setup?
    Thank you in advance.

    Unfortunately no, there is no other way of forcing it without restart. The SQL Server stack has no idea of the existing Native Client as it booted prior its installation. And you cannot force "DLL reload" without proper service restart. 
    Ivan Donev MCT and MCSE Data Platform

  • Transfering Access table to SQL 2008 R2 problem

    I have a 2010 Access database table that I need to convert over to SQL 2008 R2 database table. The table has over 10,0000 records in it.
    The problem is that every time I try to transfer the data over to SQL using the Access to SQL wizard in Access it gives me an error that say "Table was skipped or export failed" which is absolutely no help at all.
    Is there a way to get a more specific error to what is causing this to fail? I have also tried exporting the table to Excel and then trying to transfer the data into SQL but that doesn't give a much better error message than the Access to SQL wizard.
    Please help
    Thank you

    This probably suggests some bad date columns. The date range in Access date is “greater” then that of SQL server, so some bad dates like 2/2/2 for example would fail.
    Open up the table in access, and sort the data column – you might only have 4-5 bad ones – edit them by hand.
    The sql to Access migration tools is as noted MUCH better but has somewhat of a learning curve, but does and can deal with bad dates better.
    Albert D. Kallal (Access MVP)
    Edmonton, Alberta Canada

  • Programati​cally Link Tables wiith SQL

    Is there a way to programatically link tables from one Access Database
    to another using SQL?
    Tim Erickson

    I can't give you a definite answer, but a direction to start looking would be to check the MS website and see if you can find an example of how to do it either using ActiveX or a combination of ActiveX and a macro. If you can find such an example, all you have to do is recast the calls to LV-style ActiveX operations. Alternately you may find that such remote operation is not possible--in which case you have your answer.
    In any case, please keep the list posted with what you find as I sometimes get stuck using Access and the information could be helpful.
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Unable to link tables crystal reports 2008

    I am using wsdl file to pull data, but i am unable to link tables in the links tab. can anyone help me how to do this.  or do you think something is wrong with the wsdl file Thank you in advance

    i have the same problemm.
    did u solve it, or you just gave up?

  • Source for Custom Action Table in SQL 2008 and above.

    Up till SQL 9.0, there used to be a CustomAction table in SqlRun.msi but this file was removed in the later versions. Is this still there in any other file or is there an alternate source for pausing the install process at a certain stage?

    SQLrun.msi is removed from 2008 onwards but it was not used for stopping intall process as per below link it was used for starting SQL server and getting info about list of application installed
    SQLmsi file
    What is your requirement exactly
    Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers
    My TechNet Wiki Articles

  • How to delete the double records connected to one or more than one tables in SQL 2008?

    Can anyone please help me with the SQL query. I Im having a table called People with columns names: personno., lastname, firstname and so on. The personno. is having duplicate records,so all the duplicate records i have written with "double" in
    the beginning of the numbers. I tried deleting these double records but they are linked to one or more than one tables. I have to find out, all the tables blocking the deleting of double person. And then create select statements which creates update statements
    in order to replace the current id of double person with substitute id. (The personno. is in the form of id's in the database)

    You should not append "double" in the personno. When we append it will not be able to join or relate to other table. Keep the id as it is and use another field(STATUS) to mark as duplicate. Also we will require another field(PRIMARYID) against
    those duplicate rows i.e the main or the primary personno.
    (SELECT personno, status, primaryid FROM PEOPLE WHERE status = 'Duplicate') b
    ON a.personno = b.personno
    UPDATE OtherTable SET personno = b.primaryid
    FROM OtherTable a INNER JOIN
    (SELECT personno, status, primaryid FROM PEOPLE WHERE status = 'Duplicate') b
    ON a.personno = b.personno
    NOTE: Please take backup before applying the query. This is not tested.
    Regards, RSingh

  • Get the Last Value of Status Field from SQL TABLE using SQL 2008

    I have a table with Fields such as
    UploadstartTime, UploadEndtime, STATUS From TBLA.
    The STATUS Field, has values =7 and 11 are failed and 12 is SUCCESS. I cannot do a max, since it will always show 12, I need to get the MAX(UPLOADENDTIME, and get STATUS For that record. How can I do that using 1 SQL Query?
    My current code is: The issue is

    Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. You failed! Temporal
    data should use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect. 
    This is minimal polite behavior on SQL forums. 
    >> I have a table with Fields such as <<
    Fields are not columns! There is no generic status in RDBMS. Putting “tbl-” in a table name is called tibbling and we make fun of people who do it (Google Phil Factor's humor columns. If you were polite is this what you wanted to post? 
    CREATE TABLE Something_Uploads
    (upload_source_name CHAR(15) NOT NULL,
     upload_start_timestamp DATETIME2(0) NOT NULL,
     PRIMARY KEY (upload_source_name, upload_start_timestamp),
     upload_end_timestamp DATETIME2(0),
     CHECK(upload_start_timestamp < upload_end_timestamp),
     upload_status INTEGER NOT NULL 
       CHECK (upload_status IN (7,11,12, ..))
    >> I cannot do a max, since it will always show 12, I need to get the MAX(UPLOADENDTIME, and get upload_status For that record [sic]. How can I do that using 1 SQL Query?  <<
    Since you told us nothing and gave no sample data, want to correct this postign? 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • How to create a DSN-less connection to SQL Server for linked tables in Access

    i cant understand how i use that Function
    if that information what you need
     stLocalTableName: dbo_user_name
    stRemoteTableName: user_name
    stDatabase :sedo2015
    stUsername :sedo_menf_SQLLogin_1
    stPassword :123456789
    how will be that Function??
    please write that Function to me
    '//Name : AttachDSNLessTable
    '//Purpose : Create a linked table to SQL Server without using a DSN
    '// stLocalTableName: Name of the table that you are creating in the current database
    '// stRemoteTableName: Name of the table that you are linking to on the SQL Server database
    '// stServer: Name of the SQL Server that you are linking to
    '// stDatabase: Name of the SQL Server database that you are linking to
    '// stUsername: Name of the SQL Server user who can connect to SQL Server, leave blank to use a Trusted Connection
    '// stPassword: SQL Server user password
    Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String)
    On Error GoTo AttachDSNLessTable_Err
    Dim td As TableDef
    Dim stConnect As String
    For Each td In CurrentDb.TableDefs
    If td.Name = stLocalTableName Then
    CurrentDb.TableDefs.Delete stLocalTableName
    End If
    If Len(stUsername) = 0 Then
    '//Use trusted authentication if stUsername is not supplied.
    stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
    '//WARNING: This will save the username and the password with the linked table information.
    stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
    End If
    Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
    CurrentDb.TableDefs.Append td
    AttachDSNLessTable = True
    Exit Function
    AttachDSNLessTable = False
    MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description
    End Function

    thanks more thanks for you
    look i add that code in form
    it worked but i cant add recored  why ??
    Private Sub Form_Open(Cancel As Integer)
    Call AttachDSNLessTable("dbo_user_name", "user_name", "", "sedo2015", "sedo_menf_SQLLogin_1", "123456789")
    End Sub

  • How to transfer the tables from one file group to another file group in SQL 2008.?

    Hello all,
    I have few issues regarding the transfer of the tables from one file group to another file group  in SQL 2008 and also How can we  backup
    and restore the particular database based on file group level.
    Let’s say I have a tables stored within the different FG. such as
      File group
    Dimension tables                                              
    Fact tables                                               
    dim.table1                                                                                                                          DEFAULT_FG
    dim.table2                                                                                                                          DEFAULT_FG
    Here all I want to transfer the dim.table1 ,dim.table2  from  DEFAULT_FG to the Primary File
    group .So is there simple methods for transfer the dim.table1,2  from one FG to another .I have tried somewhat but I couldn’t get the exact way .So if someone have better idea please share your knowledge that would be really appreciated.
    Secondly after moving those dim.table1 ,dim.table2 from DEFAULT_FG to Primary ,All I want to backup and restore the database only containing  the Primary and FG1,FG2… not
    a DEFAULT_FG.Is it possible or not.?
    Hope to hear from the one who knows better approach for this kind of task .Your simple help will be much appreciated.
    Anil Maharjan

    Well after all my full day research on this topic had paid off, I finally got the solution and am so happy to research on these things. It makes
    us feel really happy after all our research and hard work doesn't goes as waste.
    Finally I got what I am looking for and want to make sure that I am able to transfer the tables from DEFAULT_FG to another FG without tables
    having clustered index on that tables .
    With the help of the link below I finally got my solution where Roberto’s coded store procedure simply works for this.
    Really thanks to him for his great post and thanks to all for your response and your valuable time.
    Anil Maharjan

  • SQL 2008 Problem Calling an SP on an Oracle 10G Linked Server

    Hi everyone
    I've read through a number of posts on many sites about this issue but haven't found anything that has helped me so far. The machine I'm using is running Microsoft SQL Server 2008 64bit and the linked server I've created to Oracle 10G is using OraOLEDB.Oracle. If I test the connection in SQL Management Studio it succeeds and for any queries I have using OpenQuery to select from the Oracle DB I have no problem getting results.
    The Oracle 32bit client and 64bit client versions are installed on the machine.
    My problem is that I need to exec an Oracle SP which in turn inserts into various Oracle tables. I previously had this all working fine on 32bit SQL Server 2000 installation connected to Oracle 10G. Using the same code in SQL Server 2008 I get the following error:
    Msg 7357, Level 16, State 2, Line 1
    Cannot process the object "{CALL INTF.INTF_TW_PO_REQ_INTERFACE.MAIN(NULL, 15.000000, 0.000000, 'BLPO0099998', 'BLPO0099998', '', '', 39804, 21883, 'BLPO0099998', 249, 1, 950, 'Main', 190506, 37336, '1', TO_DATE( '20090706','YYYYMMDD' ), TO_DATE( '20090706','YYYYMMDD' ), 'INCOMPLETE',37336, {RESULTSET 1, P_Success})}". The OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLE" indicates that either the object has no columns or the current user does not have permissions on that object
    The call is made by the following piece of code in SQL:
    SET @execCmd = N'SELECT
    OPENQUERY( ORACLE, '''+ @oracleCmd + ''')';
    EXECUTE (@execCmd);
    Where @oracleCmd = {CALL INTF.INTF_TW_PO_REQ_INTERFACE.MAIN(NULL, 15.000000, 0.000000, ''BLPO0099998'', ''BLPO0099998'', '''', '''', 39804, 21883, ''BLPO0099998'', 249, 1, 950, ''Main'', 190506, 37336, ''1'', TO_DATE( ''20090706'',''YYYYMMDD'' ), TO_DATE( ''20090706'',''YYYYMMDD'' ), ''INCOMPLETE'',37336, {RESULTSET 1, P_Success})}
    I also tried using the below snippet from another post I found and got no joy either.
    declare @result varchar(255)
    exec ('BEGIN
    ?:= your_SP_Name(''arg1'', ''arg2'', etc);
    ',@result OUTPUT) at your_LinkedServerName;
    select @result;
    OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLE" returned message "ORA-06550: line 3, column 7:
    PLS-00222: no function with name 'INTF_TW_PO_REQ_INTERFACE' exists in this scope
    ORA-06550: line 3, column 1:
    PL/SQL: Statement ignored".
    I can't figure out why it doesn't work in SQL 2008 when it worked fine in SQL 2000 - PLEASE HELP!
    Thank you
    Alida Hope

    Why development on 10g and production on 8i? Either both should be 8i or both should be 10g.
    If you will keep production on 8i and development on 10g then you cannot stop such errors as there are features that are enabled by default in 10g and both the versions have very big differences.
    Just go ahead and install 8i.

  • How to create linked server in sql 2005 to access free table visual foxpro 9 step by step

    Hi All, I want to connect to dbf file visual foxpro by using linked server in sql 2005, but i can't do, i hope getting best anwser from every body in forum.
    Thanks all.

    Hi doanpq,
    Please download and install OLE DB Provider for Visual FoxPro 9.0, which exposes OLE DB interfaces that you can use to access Visual FoxPro databases and tables from other programming languages and applications. Please see:
    Then, please follow up the following article to create a linked server:
    Creating Linked Servers:
    For more information, you can also take a look at the following article, especially Dave K's comment:
    Elvis Long
    TechNet Community Support

  • Linked server issue using SQLNCLI versions on SQL 2008 & 2014

    Hi all,
    Our product creates databases on a sql server 2008 instance and creates linked servers between them to use distributed queries.
    This looks like: "EXEC sp_addlinkedserver 'linkDatabaseA', '', 'SQLNCLI10', '.', NULL, NULL, 'DatabaseA'"".
    Distributed queries from second database to DatabaseA work fine in this scenario.
    As we want to support both SQL 2008 and SQL 2014 in the next product version, I changed this to SQLNCLI11 as the provider
    and tested on SQL 2008 after installation of the SQLNCLI11 driver.
    This resulted in following error message:
    Msg 468, Level 16, State 9, Line 7
    Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.
    This is very suprising as the SQL Server 2008 instance and both DB's have "SQL_Latin1_General_CP1_CI_AS" as their collation sequence.
    Then I tried the opposite, installing SQLNCLI10 on SQL 2014. This gave exactly same error! Using SQLNCLI11 went fine ofcourse.
    Generation sp_addlinkedserver statements with correct driver based on SQL version, I'd rather not do (some of the calls are
    generated in SQL from settings in other db tables which are also used for external connx) and adding COLLATE to the queries also
    has consequences like performance degradation. Adding collate on SQL 2014 with SQLNCLI10 as linked server provider results in
    following error:
    Msg 7399, Level 16, State 1, Line 1617
    The OLE DB provider "SQLNCLI10" for linked server "linkDatabaseA" reported an error. Access denied.
    Msg 7301, Level 16, State 2, Line 1617
    Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "SQLNCLI10" for linked server "linkDatabaseA".
    Q: Is there any way that SQLNCLI11 can be made to work for linked servers on SQL2008 (preferred solution) or SQLNCLI10 on SQL2014?
    Thx for any feedback.
    Regards, Jouke

    Hi Sofiya,
    Thx for replying.
    For the deployment reasons  mentioned above, I would prefer to use only one SQLNCLI version in both 2008R2 & 2012/2014 scenario's. Most preferred would ofcourse be SQLNCLI11 as this is the latest.
    This would mean that I'd like to be able to configure linked server in SQL2008R2 using SQLNCLI11 driver.
    I would expect that it would be downward compatible with SQLNCLI10 for all client usage, including linked server, which in essence is one SQL DB doing client access to another SQL DB either on same server instance or another. I suspect it requests DB
    metadata from remote DB in order to make decisions and this seems not to work in my setup. If this metadata API is part of the public API, this could indicate that medadata API has been broken in SQLNCLI11 (heavy speculation on my part here!), which could
    also affect other usage (eg. linked server between SQL2008(R2) and SQL2012/2014 instances, (I'll try to set this up and test this, might take a few days. If someone is volunteering, below are db table schemes and query, update @datasrc to point to remote sql
    server instance)).
    Regards, Jouke
    -- This script to run on SQL2008(R2). On SQL2012/2014, install SQLNCLI10 and change @provider in sp_addlinkedserver call.
    -- Pre:
    --   - DatabaseA and DatabaseB are created manually in SSMS
    --   - SQLNCLI11 has been installed
    USE [DatabaseA]
    CREATE TABLE [dbo].[DatabaseATable](
     [IdField] [int] NOT NULL,
     [LinkField] [nchar](10) NULL,
     [IdField] ASC
    ) ON [PRIMARY]
    EXEC master.dbo.sp_addlinkedserver @server = N'linkDatabaseA', @srvproduct=N'',@provider=N'SQLNCLI11', @datasrc=N'.', @catalog=N'DatabaseA'
    USE [DatabaseB]
    CREATE TABLE [dbo].[DatabaseBTable](
     [IdField] [int] NOT NULL,
     [LinkField] [nchar](10) NULL,
     [IdField] ASC
    ) ON [PRIMARY]
    SELECT b.*, a.*
    FROM DatabaseBTable AS b WITH(NOLOCK)
    JOIN linkDatabaseA.DatabaseA.dbo.DatabaseATable AS a
      ON a.LinkField = b.LinkField
    Hi Jouke Numan,
    According to your description, I install SQL Native Client 11.0 OLE DB Provider in SQL Server 2008R2, and as you post, create two database on the same instance with collation in server default, then create Linked Server with SQLNCI11.0.
     When I run the query statement, it can execute well. It also do not occur the collation conflict. I still recommend you check the collation of server, database, or column and so on.
    SQL Server Native Client 11.0 provides OLE DB support to applications connecting to SQL Server versions 2005, 2008, 2008R2, 2012. So for the deployment reasons, you can choose the only SQLNCLI11.0 in both SQL Server 2008R2 and SQL Server 2012/2014.
    Sofiya Li
    Sofiya Li
    TechNet Community Support

  • Have trouble query after creating a linked server from SQL Server 2008 to EXCEL 2007

    I created a linked server from SQL Server 2008 Management Studio Express to an EXCEL 2007 workbook using:
    sp_addlinkedserver @server='LSERVER_EX0', @srvproduct='EXCELDATA', @provider='Microsoft.ACE.OLEDB.12.0', @datasrc='C:\Temp\abc.xlsx', @provstr='EXCEL 12.0'
    The linked server LSERVER_EX0 was created, but I cannot see any table(excel sheet), and when i ran the following to query tables,
    sp_tables_ex 'LSERVER_EX0'
    I got:Cannot obtain the schema rowset "DBSCHEMA_TABLES" for OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "LSERVER_EX0". The provider supports the interface, but returns a failure code when it is used.
    Any hint why?
    on another note, i was able to import the EXCEL sheets using the Import and Export Data wizard, but i cannot control the column data type and size in this way.

    Open management studio, goto "Server Objects"->"Linked Servers"->Providers, select the provider you use, right click it and in provider options, check "Allow inprocess".

  • How to extract data from multiple flat files to load into corresponding tables in SQL Server 2008 R2 ?

              I have to implement the following scenario in SSIS but don't know how to do since I never worked with SSIS before. Please help me.
              I have 20 different text files in a single folder and 20 different tables corresponding to each text file in SQL Server 2008 R2 Database. I need to extract the data from each text file and
    load the data into corresponding table in Sql Server Database. Please guide me in how many ways I can do this and which is the best way to implement this job.  Actually I have to automate this job. Few files are in same format(with same column names
    and datatypes) where others are not.
    1. Do I need to create 20 different projects ?
        Can I implement this in only one project by having 20 packages?
        Can I do this in one project with only one package?
    Thanks in advance.

    As I said I don't know how to use object data type, I just given a shot as below. I know the following code has errors can you please correct it for me.
    Sub Main()
    ' Add your code here 
    Dim f1
    As FileStream
    Dim s1
    As StreamReader
    Dim date1
    Dim rline
    Dim Filelist(1)
    Dim FileName
    Dim i
    i = 1
    date1 =
    Filelist(0) =
    Filelist(1) =
    Each FileName
    In Filelist
    f1 = File.OpenRead(FileName)
    s1 = File.OpenText(FileName)
    rline = s1.ReadLine
    Not rline
    If Left(rline, 4) =
    date1 (i)= Mid(rline, 7, 8)
     i = i + 1
    rline = s1.ReadLine
    "date").Value = date1(1)
    "date1").Value = date1(2)
    Dts.TaskResult = ScriptResults.Success

Maybe you are looking for