Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Как скинуть все данные таблицы в виде SQL скрипта (INSERT...)   Найти похожие ветки 

 
Layner ©   (2004-04-22 08:29) [0]

не могу найти этот пункт в EM :(
Помню в TOAD для ORACLE была такая опция, тут думал тоже есть в "Generete SQL Script" в свойствах табл, ан нет :(
SQL Damp так сказать.
Заранее благодарю!!!


 
Layner ©   (2004-04-22 08:30) [1]

Да, уточню, это в SQL Server 2000.


 
Layner ©   (2004-04-22 08:41) [2]

Мастера! Ну кот нибудь, есть ли такая штука в EM, или QA?


 
Layner ©   (2004-04-22 08:49) [3]

sniknik
Может подскажешь :) Один ты на форуме... срочно надо :)


 
ZrenBy ©   (2004-04-22 10:21) [4]

(c)Serge I

if exists (select * from sysobjects where id = object_id(N"[dbo].[sp_gen_insert ]") and OBJECTPROPERTY(id, N"IsProcedure") = 1)
drop procedure [dbo].[sp_gen_insert ]
GO

SET QUOTED_IDENTIFIER  OFF    SET ANSI_NULLS  ON
GO

--Генерирует скрипт закачки данных операторами INSERT c  учетом NULL-значений и апострофами в тексте
CREATE PROCEDURE sp_gen_insert
@db varchar(30), -- имя БД
@tb varchar(30) -- имя таблицы
AS
--
declare @selstring varchar(2000),
@colname varchar(30),@ch int,@dt tinyint, @isquot char, @csn as varchar(30)

select @selstring="declare tcur cursor  for
SELECT column_name, character_maximum_length,   datetime_precision, CHARACTER_SET_NAME
FROM "+@db+"."+"INFORMATION_SCHEMA.COLUMNS
WHERE table_name ="""+ @tb+""""
exec (@selstring)
declare @fields varchar(250),@str varchar(2000),@first char
open tcur

fetch tcur into @colname,@ch,@dt,@csn
 if (@ch is null and @dt is null)
set @first=1
 else
set @first=0
set @fields=""
set @str=""

WHILE @@FETCH_STATUS = 0
BEGIN
 if (@ch is null and @dt is null)
set @str=@str +"+","+isnull(cast("+@colname+" as varchar(8000)),"+""""""""+")"
 else  
set @str=@str + "+","""+isnull(convert(varchar(8000),"+@colname+",121),"+""""""""+")+"""""

  set @fields = @fields+","+@colname
  fetch tcur into @colname,@ch,@dt,@csn
END

if @first=0
set @str=""""+substring(@str,5,2000)
else
set @str=substring(@str,6,2000)

set @str=""insert into "+""+@tb+""+" values("+"+@str+"+")""
close tcur
DEALLOCATE tcur
select @selstring="declare tcur cursor  for select "+@str+" from " + @db+".."+@tb
exec (@selstring)

declare @vstr varchar(8000)
open tcur
fetch tcur into @vstr
WHILE @@FETCH_STATUS = 0
BEGIN
--Мудрим с NULL
set @vstr=replace(@vstr,","""",",",NULL,")
set @vstr=replace(@vstr,","""")",",NULL)")
set @vstr=replace(@vstr,"("""",","(NULL,")
set @vstr=replace(@vstr,","",",",NULL,")
set @vstr=replace(@vstr,","")",",NULL)")
set @vstr=replace(@vstr,"("",","(NULL,")
--Мудрим с апострофом
set @vstr=replace(@vstr,""","""")
set @vstr=replace(@vstr,"("","(")
set @vstr=replace(@vstr,","",",")
set @vstr=replace(@vstr,"")",")")
set @vstr=replace(@vstr,"",",",")
--Снова NULL
set @vstr=replace(@vstr,","""""",",",NULL,")
set @vstr=replace(@vstr,","""""")",",NULL)")
set @vstr=replace(@vstr,"("""""",","(NULL,")
print @vstr
fetch tcur into @vstr
end
close tcur
DEALLOCATE tcur

GO
SET QUOTED_IDENTIFIER  OFF    SET ANSI_NULLS  ON
GO


Использование

exec sp_gen_insert "pubs", "authors"


 
Layner ©   (2004-04-23 13:35) [5]

ZrenBy ©   (22.04.04 10:21)
Спасибо, код сохранил, может пригодится, просто я нашел программу через поисковики, в это же время, с исходниками, которая это делает.
http://sql.softmatics.ru/22.htm
и тут
http://vyaskn.tripod.com/code/generate_inserts.txt


 
Nikolay M. ©   (2004-04-23 16:11) [6]

Неужели через DTS не получилось сделать? Не поверю :(



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.055 c
1-1084124365
TNewb
2004-05-09 21:39
2004.05.23
Опять StringGrid


14-1083513533
Marina_S
2004-05-02 19:58
2004.05.23
TurboPascal


3-1083062318
UE
2004-04-27 14:38
2004.05.23
DBExpress -> TSQLConnection -> DBX Error: ...


4-1080972102
Namiq
2004-04-03 10:01
2004.05.23
Java + Delphi


14-1083745962
Artix
2004-05-05 12:32
2004.05.23
системные библиотеки