set nocount on
--表名和查詢條件
declare @tablename varchar(64),@c varchar(512)
set @tablename='ba_roleauthority'
set @c='where 1=1'
--定義欄位名,型別和長度的變數,以及獲取表結構的游標
declare @name varchar(64),@type varchar(16),@len varchar(6)
declare tbcur cursor
for select column_name ,data_type,character_octet_length from information_schema.columns
where table_name=@tablename
--定義插入語句的變數
declare @rows nvarchar(512),@exe_sql nvarchar(2048),@sqlrow nvarchar(2048)
set @rows=''
set @exe_sql=''
--獲取表結構,
open tbcur
fetch next from tbcur into @name,@type,@len
while @@fetch_status=0
begin
set @rows=@rows+@name+','
if @type = 'varchar' or @type='char' or @type ='datetime' or @type='nvarchar' or @type ='nchar'
begin
set @exe_sql=@exe_sql+ 'isnull(''n''''''+'+@name+'+'''''''',''null'')'+'+'',''+'
endelse
begin
set @exe_sql=@exe_sql+ 'isnull(convert(varchar(12),'+@name+'),''null'')'+'+'',''+'
endfetch next from tbcur into @name,@type,@len
endset @rows=substring(@rows,1,len(@rows)-1)
set @exe_sql=substring(@exe_sql,1,len(@exe_sql)-5)
close tbcur
deallocate tbcur
--exec('select '+@exe_sql+' from '+@tablename +' '+@c)
--建立臨時表
exec('select '+@exe_sql+' as r into ##temp from '+@tablename +' '+@c)
--定義要獲取資料的游標
declare tb_cur cursor
for select * from ##temp
open tb_cur
fetch next from tb_cur into @sqlrow
while(@@fetch_status=0)
begin
print 'insert into '+@tablename+'('+@rows+') values('+@sqlrow+')'
fetch next from tb_cur into @sqlrow
endclose tb_cur
deallocate tb_cur
exec('drop table ##temp')
SQL Server資料匯出到Oracle的方案
假設要將sql server中的northwind資料庫中的products表匯出到oracle的scott使用者,首先需要有安裝sql server企業版 1.開啟工具 開始 程式 microsoft sql server 匯入和匯出資料 2.下一步,選擇資料來源 資料來源 選擇 用於sql se...
sqlserver 匯出資料到 sqllite
sqllite是個輕量級資料庫,在移動開發上應用很廣,目前的專案也是跟移動掛鉤的,所以我們目前專案有需要使用sqllite的地方。如果直接自己建立的話是沒有問題的,但是現在我們是需要從sqlserver上匯出到sqllite裡。上午主要做了這個工作。第乙個想法,使用odbc直接匯出到sqllite,...
SQL Server資料的匯入匯出
這裡簡單記錄一下如何使用bcp工具進行資料的匯入匯出。首先bcp是sql server自帶的工具,所以只要你安裝了sql server後就自帶了。在cmd中輸入cmd,你會發現他的一些引數說明選項。具體的引數選項大家可以在具體用到的時候再去檢視,這裡就不一一解釋了 實際上我也用的不多 乙個最簡單的匯...