建立一个到 SQLSERVER 的connection
然手执行以下语句insert into tablename select [fieldnamelist] from OPENROWSET('Microsoft.Jet.OLEDB.4.0','MDB所在的全路径';'admin';'', tablename)
然手执行以下语句insert into tablename select [fieldnamelist] from OPENROWSET('Microsoft.Jet.OLEDB.4.0','MDB所在的全路径';'admin';'', tablename)
解决方案 »
- dataelement.AppendChild(elem)异常
- 求助!使用DoEvents后,程序仍然会在form.show处停止
- TIOBE排名中的(Visual) Basic是VB6还是VB2005呢?
- 如何从网页上下载数据
- 在SQL中,现在有一张表,里面有两个字段,一个是规定房间的最大可住人数,一个是这个房间目前住的人数,如果两个字段的值相同时,就设定,每三个
- 简单的算法..进来看看吧...
- 行号无效?
- VB函数
- 怎麼從VB中得知我打開的數據庫表中某個字段的字段類型?
- 请问斑竹一个难题。
- 为什么程序执行后占用的SQL的内存不能释放???HELP!!!
- 不能在toolbar上,加入imagelist,为何?
INSERT 语句中的 SELECT 子查询可用于将一个或多个其它的表或视图的值添加到表中。使用 SELECT 子查询可同时插入多行。下面的 INSERT 语句将 titles 中数据的 type 是 modern cooking 的所有行的数据插入到一个单独的表中:USE pubs
INSERT INTO MyBooks
SELECT title_id, title, type
FROM titles
WHERE type = 'mod_cook'子查询的选择列表必须与 INSERT 语句列的列表匹配。如果没有指定列的列表,选择列表必须与正向其插入的表或视图的列匹配。INSERT...SELECT 语句的另一个作用是从 Microsoft® SQL Server™ 的外部数据源插入数据。INSERT 语句中的 SELECT 可以: 使用由四部分组成的名称引用链接服务器上的远程表。有关更多信息,请参见使用链接服务器名标识数据源。
使用 OPENROWSET 引用远程表。有关更多信息,请参见使用特殊名称标识数据源。
使用在远程服务器上执行的查询结果集。有关更多信息,请参见将直接传递查询作为表使用。
使用特殊名称标识数据源
当引用 OLE DB 数据源的频率不够高,尚不足以保证配置链接服务器时,可使用特殊名称作为表引用。在 Microsoft® SQL Server™ 2000 中,可以使用 OPENROWSET 和 OPENDATASOURCE 函数提供特殊名称。OPENROWSET 和 OPENDATASOURCE 函数都提供特殊连接信息。可以使用这些函数指定访问 OLE DB 数据源所需的全部信息。但是,不可以将 OPENROWSET 和 OPENDATASOURCE 函数互换。当 OLE DB 提供程序通过指定表(或视图)名称或通过指定返回行集的查询返回行集时,可以使用 OPENROWSET 函数。而 OPENROWSET 函数则可以在 Transact-SQL 语句中代替表或视图名称。本示例使用特殊名称从 Microsoft Access 版本的 Northwind 示例数据库中检索数据。
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'',
Customers)仅当提供程序表现行集并 使用 catalog.schema.object 注释时,才可以使用 OPENDATASOURCE。该函数可以在能够使用链接服务器名的 Transact-SQL 语法位置中使用。即,在 catalog.schema.object 注释中,OPENDATASOURCE 可以用作表或视图名称(四部分)的第一部分。-- SELECT from a table on another instance of SQL Server.
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories只有在特殊情况下(当不可能配置永久链接服务器时)访问外部数据时,才应使用 OPENROWSET 和 OPENDATASOURCE。这两个函数不提供链接服务器中的所有可用功能,如管理登录映射、查询链接服务器元数据的能力和配置各种连接设置(如超时值)的能力。OPENROWSET 和 OPENDATASOURCE 的参数不支持变量。必须将它们指定为字符串字面值。如果需要将变量作为参数传递到这两个函数中,则可以使用 EXEC 语句动态地构造并执行包含这些变量的查询字符串。
SELECT F01,F02
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source=\..\xxx.mdb;User ID=Admin;Password=')...TableFROM
Dim lao As String
lao = "insert into xx select * from openrowset('Microsoft.jet.oledb.4.0','d:\northwind.mdb','admin','xx')"
sqlCon.Execute lao我这样写时提示逗号处有错误,请问错误在什么地方?
adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;
Data Source=yuer\psql2k;DataBase=FromExternal"
adoConnectionX.Execute "INSERT INTO OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Da
ta Source=\..\XXX.mdb')...[YourAccessTable] ([Fld1],[Fld2]) SELECT [Col1],[Col2]
FROM [YourSQLTable]" 注意路径问题:
SQL语句是在服务器端执行!!!!!!!
路径应该是相对于服务器的!!!!!!