數據庫以insert語句形式從表中導出數據
既然有人提出用語句實現,那我們就用語句,我把她做成一個存儲過程,在環境sql2005下測試通過,有一點說明:表中的字段值不能為空,否則將返回一個空值: 第一步:--首先創建一張結果表,保存要輸出的數據 create table out_data (flag int,--標識 tb_name varchar(1000),--表名稱 insert_info varchar(8000))--插入的語句 第二步,創建存儲過程: create proc [dbo].[out_table_data] @tb_name varchar(1000)--表名稱 as declare @str varchar(8000),--存放字段名稱 @insert_str varchar(8000),--存放處理結果串 @bl varchar(8000),--存放變量及其數據類型 @bl2 varchar(8000),--存放變量名稱 @bl3 varchar(8000),--數據類型 @bd varchar(1000),--引號使用開始 @bd2 varchar(1000),--引號使用結束 @sum_str varchar(8000),--存放賦值變量和字段 @sum_str_column varchar(8000),--存放要提取的變量字段 @j varchar(3000),--字段個數 @i varchar(3000)--循環起始量 set @str='' set @bl='declare '--聲明變量(保留中間的空格) set @bl2='' set @bl3='' set @i=1 set @sum_str='' set @sum_str_column='' set @bd='''''''+' set @bd2='+''''''' --字段個數 select @j=count(a.[name]) from syscolumns A inner join sysobjects B on * = * and * = @tb_name --自動定義變量放入串@bl中(case when c.[name] in('char','nchar','varchar','nvarchar') then '('+convert(varchar(500),*)+')' else '' end) select @bl=@bl+'@'+a.[name]+' '+'varchar(8000)'+',' ,@bl3=@bl3+c.[name]+',' from syscolumns A inner join sysobjects B on * = * inner join systypes c on *=*ype and * = @tb_name set @bl=left(@bl,len(@bl)-1) --要查詢的表字段名放入串@str中 select @str=@str+a.[name]+',' ,@bl2=@bl2+'@'+a.[name] from syscolumns A inner join sysobjects B on * = * and * = @tb_name set @str=left(@str,len(@str)-1) set @bl2=@bl2+'@' while @i<=@j begin set @sum_str_column=@sum_str_column+@bd+isnull(left(@bl2,charindex('@',right(@bl2,len(@bl2)-1))),0)+@bd2+',' set @sum_str=@sum_str+left(@bl2,charindex('@',right(@bl2,len(@bl2)-1)))+'='+left(right(@bl2,len(@bl2)-1),charindex('@',right(@bl2,len(@bl2)-1))-1)+',' set @bl2 = right(@bl2,len(@bl2)-charindex('@',right(@bl2,len(@bl2)-1))) set @bl3=right(@bl3,len(@bl3)-charindex(',',@bl3)) set @i=@i+1 end set @sum_str=left(@sum_str,len(@sum_str)-1) set @sum_str_column=left(@sum_str_column,len(@sum_str_column)-1) --執行處理過程,在臨時表中進行 set @insert_str=' '+@bl+' declare @max int,@min int select identity(int,1,1) flag,'+@str+' into #tmp from '+@tb_name+' select @min=min(flag),@max=max(flag) from #tmp while @min<=@max begin select '+@sum_str+' from #tmp where flag=@min insert into out_data(flag,tb_name,insert_info) select @min [id],'''+@tb_name+''' tb_name,''insert into '+@tb_name+''+'('+@str+') values('+@sum_str_column+')'' names set @min=@min+1 end' exec(@insert_str) --print @insert_str 第三步、獲取你要的結果信息,如要批量,循環該過程就可以了 exec out_table_data 'net_code' 返回結果: select * from out_data where tb_name like '%net_code%'。
表里的數據導成insert語句有何特點
Internet上還有一種免費的MYSQL數據庫很流行。
有些時候我們需要把oracle里的數據導入MYSQL里。生成insert into 表名 。
。 是一種很簡單直接的方法。
今年六月份從www。arikaplan。
com/oracle。 html看到一個可以生成insert into 表名 。
。語句的存儲過程genins_output。
我按中文習慣的時間格式YYYY-MM-DD HH24:MI:SS改了改,并新寫了一個存儲過程genins_file。sql。
它可以把小于16383條記錄表里的數據導成(insert into 表名 。 。
。)
OS下文件。調用它之前,DBA要看看數據庫的初始化參數 UTL_FILE_DIR 是否已經正確地設置:SQL> show parameters utl_file_dir;可以看到該參數的當前設置。
如果沒有值,必須修改數據庫的initsid。 ora文件,將utl_file_dir 指向一個你想用PL/SQL file I/O 的路徑。
重新啟動數據庫。此參數才生效。
調用它,可以把表里的數據生成(insert into 表名 。
。)
OS下文件的過程genins_file方法:。
oralce怎樣導出表的insert語句
方法/步驟
1
很多時候我們在生產數據庫上面只能進行簡單的查詢,是不能增刪查改的。但是又想使用真實的數據。
2
如果用plsql develop是可以實現將數據導出成insert語句的。但是導出之后是全部的列都會出現在insert語句里面。
3
遇到一些空值,日期之類的還要處理一下才行,而且有很多列是自己不需要的。
4
這個時候就需要用sql來構造insert語句了。他是比較自由和靈活的,可控制性比較強。
5
例如:我這里有一個city的表。看看我是如何構造insert語句的吧!
select * from city;
6
我sql語句如下:
select 'insert into table_name (pro,city) values ('''+province+''','''+city+''');' sql_str
from city;
7
好了,這樣就可以排量的將某個表導出成insert語句了。
如何將sqlserver表中的數據導出sql語句或生成insert into語句
我是這樣做的,參考如下語句
select 'insert into table(column,column,column) values('+id+',''' + name+''','''+url+''')'
from table其中,兩個單引號表示一個引號的意思。生成數據列表后樣式
insert into table(column,column,column) values(00101,'XXXXX,'XXXXXX')
insert into table(column,column,column) values(00102,'XXXXX','XXXXXX')
復制語句 執行即可。
我當初測試系統配置數據就是這樣弄到正式機的,將數據弄成文本形式的SQL,僅供參考。
sql2005中數據如何導出為insert腳本語句
假設有個Excel表中的數據要插入到SQL 表tablename,有兩列,第一列uid ,int型,第二列 username, nvarchar(100)型
步驟:
1. 在 Excel 中用公式生成insert語句,假設數據在A和B列, 在C列輸入如下公式
="insert into tablename(uid,username) values(" & a2 & ",N'" & b2 &"')"
往下拉,使得每行都生成一條insert語句
2. 復制這些insert 語句到 SSMS中,執行即可。
轉載請注明出處華閱文章網 » 導出insert語句