PDA

View Full Version : سوال: کپی کردن کامل یک جدول از sql به mdb



tempali
سه شنبه 13 دی 1390, 11:16 صبح
سلام
من از sql 2000 استفاده می کنم زمانی که می خوام اطلاعات یک جدول رو به یک دیتا بیس خارجی منتقل کنم (mdb) قبول نمی کنه > فکر می کنید مشکل از کجاست.

SELECT * INTO INtbl IN 'c:\clone.mdb' FROM _in_

این اررور رو میده

Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'in'.

shohreh
سه شنبه 13 دی 1390, 15:54 عصر
سلام
از دستور openRowSet استفاده كنيد

tempali
چهارشنبه 14 دی 1390, 10:14 صبح
سلام
از دستور openRowSet استفاده كنيد

اگر ممکنه شکل دستور رو ذکر کنید.
امتحان کردم ولی ارور می گیره

SELECT *
INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\clone.mdb','INtbl')
FROM _in_
Server: Msg 156, Level 15, State 1, Line 16
Incorrect syntax near the keyword 'OPENROWSET'.

shohreh
چهارشنبه 14 دی 1390, 14:09 عصر
سلام
از دستور زير استفاده كنيد مشكل حل مي شود

INSERT INTO OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=C:\accessdatabasename.MDB;User ID=;Password=;')...AccessTableName (AccessFieldName) SELECT fieldName From tableName

tempali
دوشنبه 19 دی 1390, 13:38 عصر
سلام
از دستور زير استفاده كنيد مشكل حل مي شود

INSERT INTO OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=C:\accessdatabasename.MDB;User ID=;Password=;')...AccessTableName (AccessFieldName) SELECT fieldName From tableName

سلام من از روش شما استفاده کردم ولی error میده


insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\clone.mdb';'admin';'',[_part info_])
select *
from [_part info_]
/*-------------------------------------------------------------*/
INSERT INTO OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=C:\clone.MDB;User ID=admin;Password=;')...[_part info_] SELECT * From [_part info_]
/*-------------------------------------------------------*/
Server: Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.

tempali
دوشنبه 19 دی 1390, 16:11 عصر
سلام به دوستان عزیز
مشکل حل شد

EXEC sp_addlinkedserver
@server ='AccessDB',
@provider ='Microsoft.Jet.OLEDB.4.0',
@srvproduct ='OLE DB Provider for Jet',
@datasrc ='C:\clone.mdb'
GO
DELETE OPENQUERY(AccessDB, 'SELECT TOP 100 PERCENT * FROM _in_')
DELETE OPENQUERY(AccessDB, 'SELECT TOP 100 PERCENT * FROM _out_')
DELETE OPENQUERY(AccessDB, 'SELECT * FROM [_part info_]')
DELETE OPENQUERY(AccessDB, 'SELECT * FROM _MainUnits_')
INSERT OPENQUERY(AccessDB, 'SELECT * FROM _OUT_')
SELECT * FROM _OUT_ WHERE [CUSTOMER ID]=13
INSERT OPENQUERY(AccessDB, 'SELECT * FROM _IN_')
SELECT * FROM _IN_ WHERE [CUSTOMER ID]=13
INSERT OPENQUERY(AccessDB, 'SELECT * FROM [_part info_]')
SELECT * FROM [_part info_]
INSERT OPENQUERY(AccessDB, 'SELECT * FROM _MainUnits_')
SELECT * FROM _MainUnits_
GO
exec sp_dropserver @server='AccessDB'
GO

با این روش تونستم اطلاعات مورد نیازم رو داخل یک فایل mdb ذخیره کنم
نکته:
- باید قبل از انتقال یک جدول مشابه جدول مبدا در دیتابیس مقصد ایجاد کنید ( بهتر قبل از شروع یک Export از دیتابیس مورد نظر تون داخل فایل اکسس بگیرین)
- باید data type تمام فیلدهای جدول مقصد Text باشه