Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизКак скинуть все данные таблицы в виде 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c