當前位置:首頁 » 編程語言 » accessinsertsql
擴展閱讀
六類FTP跳線 2022-09-25 13:53:26
如何設置保險箱里的密碼 2022-09-25 13:53:07
c語言最大值的對應 2022-09-25 13:51:17

accessinsertsql

發布時間: 2022-08-11 09:34:29

A. sql和access資料庫生成insert語句,請問怎麼寫

以前在網上看到的例子,應該就是你想要了

CREATE proc spGenInsertSQL (@tablename varchar(256))
as
begin
declare @sql varchar(8000)
declare @sqlValues varchar(8000)
set @sql =' ('
set @sqlValues = 'values (''+'
select @sqlValues = @sqlValues + cols + ' + '','' + ' ,@sql = @sql + '[' + name + '],'
from
(select case
when xtype in (48,52,56,59,60,62,104,106,108,122,127)

then 'case when '+ name +' is null then ''NULL'' else ' + 'cast('+ name + ' as varchar)'+' end'

when xtype in (58,61)

then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'cast('+ name +' as varchar)'+ '+'''''''''+' end'

when xtype in (167)

then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'

when xtype in (231)

then 'case when '+ name +' is null then ''NULL'' else '+'''N'''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'

when xtype in (175)

then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as Char(' + cast(length as varchar) + '))+'''''''''+' end'

when xtype in (239)

then 'case when '+ name +' is null then ''NULL'' else '+'''N'''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as Char(' + cast(length as varchar) + '))+'''''''''+' end'

else '''NULL'''

end as Cols,name

from syscolumns

where id = object_id(@tablename)

) T
set @sql ='select ''INSERT INTO ['+ @tablename + ']' + left(@sql,len(@sql)-1)+') ' + left(@sqlValues,len(@sqlValues)-4) + ')'' from '[email protected]
print @sql
exec (@sql)
end
GO

使用方法
exec spGenInsertSQL 表名

B. access資料庫怎麼導到SQL里

將Access數據導入到SQLserver中
在SQLserver中執行如下語句就能將Access
中B04表中的數據導入到SQLserver中的sqltablenaem表中
INSERT
INTO
sqltablename(sfield1,sfield2,sfield3,sfield4,sfield5,sfield6)
SELECT
CONVERT(char(10),afield1),afield2,afield3,afield4,afield5,afield6
FROM
opendatasource(
'Microsoft.Jet.OLEDB.4.0','Data
Source="c:docaccessdb.mdb";Jet
OLEDB:Database
Password=abc)...B04
說明:
1.CONVERT(char(10),afield1)可以對數據的類型進行轉換,控制長度;
2.在「opendatasource(
'Microsoft.Jet.OLEDB.4.0','Data
Source="c:docaccessdb.mdb";Jet
OLEDB:Database
Password=abc)...B04」中Data
Source="c:docaccessdb.mdb為Access資料庫的物理路徑(保證兩個資料庫在一台機器上);
3.Password=abc中「abc」是Access資料庫的密碼,如果資料庫無密碼就不填寫;
4.B04為在Access資料庫中的表名;
5.也可以加一些條件如WHERE
afield='a'
and
...,有選擇條件的導入數據

C. 用insert往access里插入日期/時間型數據,sql語句怎麼寫

sql語句里基本上是沒有類型這一說的。
一般情況下,有帶單引號和無引號的區別。

日期型變數你可以 '2004-1-25 20:58:30' 來表示
我用Oracle這樣沒問題。
需要注意的是,如果你的一個資料庫客戶端上輸入sql語句執行的時候,需要將該客戶端的日期格式設置一下。

D. Access里使用SQL命令,用INSERT命令插入

這種題都要來問答案,有這時間拍照上網,就不能在書上翻翻insert這個命令嗎?資料庫入門就是增刪改查,就那四個命令,insert
/delete/upate/select,花上半個小時看一下你就能知道個大概,像這樣的書上簡單的問題也就會做了,建議提問者試試看,看看半小時能不能學會這幾個命令。

E. 指教告訴access sql 的insert語句問題,是沒有指定表的參數的 就是insert table1 value ("value1","value2

Access 與 Oracle/SQL Server 不同,
Access 的SQL中的查詢的參數,無法命名。只能用 ? 來表明這是外部傳入的參數.
因此,參數只能按照 SQL 中 ? 的順序,進行添加.

例子:

/// <summary>
/// 用於 新增記錄的 SQL 語句
/// </summary>
private const String INSERT_SQL = "INSERT INTO [team_member_type] ([member_type_code], [member_type_name]) VALUES (?, ?)";

表名table1後面緊跟的欄位名稱,就是不指定欄位名稱

insert table1 value ("value1","value2");

如果 table1 只有2個欄位,而且都是 字元型的

那麼樓主嘗試把 value 修改為 values , insert 後面 加個 into 看看

也就是:
insert into table1 values ("value1","value2");

F. ACCESS數據如何導入SQL資料庫

找開企業管理器 先在sql里建一資料庫 選擇所有任務 導入數據 選擇數據源中選microsoft access 在把access資料庫導入到mssql資料庫時,應該注意的幾個問題 在使用MSSQL SERVER的時候,和ACCESS有很多區別的,即使是用SQL SERVER導入ACCESS資料庫,也有很多地方需要注意,這里,撿幾個例子來說說。 1、在ACCESS中經常使用的自動編號欄位,導入到MSSQL後,他並不是自增型的INT,需要手工設置,把導入後的自動編號欄位的標識的「否」改為「是」,「種子」和「遞增量」都為「1」,才能成為自動編號; 2、在MSSQL SERVER中,有許多保留字,在ACCESS中是沒有的,當你把數據導入到MSSQL的時候,問題就出來了。MSSQL在導入的時候,會自動給這些欄位(包括資料庫中的表名)加上「[欄位名]」,因此,你必須修改你的腳本,把相應的欄位名字(或者表名字)加上中括弧,或改變欄位名字為不是MSSQL的保留字。(具體是那些,請參考有關資料)

G. 如何向access資料庫導入sql文件

一.使用SQL Server的資料庫導入/導出功能。首先在要導入到的SQL Srever資料庫上右鍵,選擇「任務」,然後選擇「導入數據」,按照提示下一步直到完成即可成功將Access資料庫導入到SQL Server資料庫中,此種方法如果SQLServer資料庫中沒有相應的數據表,則會自動創建改表,但是約束等表關系不會同步導入,如果SQLServer中有相同名稱並且屬性相同的數據表,則會直接將Access資料庫中的對應表的數據導入。
在導入過程中,還可以通過SQL語句指定要導入的數據。
使用這種方法一般會出現以下兩種錯誤:
(1)無法建立數據流連接
為連接管理器「{FFBF32BF-EE84-4F94-ACDB-D4C5AC4C2941}」指定的連接類型「OLEDB」未被識別為有效的連接管理器類型。當視圖創建未知連接類型的連接管理器時會返回此錯誤。請檢查連接類型名稱的拼寫是否正確。
(2)無法連接源組件
找不到連接「SourceConnectionOLEDB」。如果找不到特定的連接元素,Connections集合將發生此錯誤。
其他信息:
找不到連接「SourceConnectionOLEDB」。如果找不到特定的連接元素,Connections集合將發生此錯誤。
({0DE0CDBB-BCD6-4261-A118-B0CB22DA3C4A})
具體解決辦法是打開SqlServerConfiguration Manage,右鍵單擊「SqlServer Integration Services」,選擇「屬性」,將登錄身份修改為「LocalSystem(本地系統)」,然後重新啟動該服務。

二.使用Access資料庫的數據升遷功能。首先點擊「工具」菜單,選擇「資料庫實用工具」,選擇「升遷向導」,這是會提示該功能尚未安裝,需要安裝XXX之類的信息,點擊安裝,等待安裝成功後,即可彈出「升遷向導」對話框,按照提示下一步直到完成,即可將Access資料庫導入到SQLServer資料庫中。使用此種方法的好處是Access資料庫中的所有數據以及表關系都會被原樣導入到SQL Server資料庫中。

三.使用SQL語句批量導入。1當只需要導入Access資料庫中的指定表以及指定表的指定列到SQLServer資料庫中時,前面的兩種方法就顯得不那麼方便了。而使用SQL語句導入可以方便快捷的導入需要的數據。具體代碼如下
(1)SQLServe資料庫中已存在要導入數據的表.(這樣可以事先按照要導入的Access資料庫的數據表創建好需要的關系)
Insert intotable(tid,tname)SELECT id,nameFROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="c:\Shop.mdb";User ID=Admin;Password=' )...ShopGoods
(2)SQLServer資料庫中不存在要存儲導入數據的表.(使用下面的代碼會直接在SQL Server資料庫中創建相應的數據表)
SELECTid,nameINTO table(tid,tname)FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="c:\Shop.mdb";User ID=Admin;Password=' )...ShopGoods
其中,table是SQL Server中用來存儲Access導入數據的數據表名,ShopGoods是指要導入到SQLServer中的Access資料庫中的數據表名。前面的三個點不能省略。
但使用這種方法時有可能出現以下錯誤:
SQLServer 阻止了對組件 'Ad Hoc DistributedQueries' 的STATEMENT'OpenRowset/OpenDatasource' 的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用sp_configure 啟用 'Ad Hoc Distributed Queries'。有關啟用 'Ad Hoc Distributed Queries' 的詳細信息,請參閱 SQLServer 聯機叢書中的 "外圍應用配置器"。
具體解決辦法是使用如下語句啟用「'AdHoc Distributed Querie」
EXECsp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'AdHoc Distributed Queries', 1 GO RECONFIGURE GO

H. 在access中能不能輸入Insert之類的SQL句

可以的,在ACCESS裡面選擇新建查詢,切換到SQL視圖就可以輸入SQL語句,保存為一個查詢,隨時就可以運行它。

其實使用向導和設計建立的查詢也是一個SQL腳本,可以進行編輯和修改。