<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии: Создание INSERT скрипта для данных таблицы MSSQL.</title>
	<atom:link href="http://usanov.net/129-sozdanie-insert-skripta-dlya-dannyx-tablicy-mssql/feed" rel="self" type="application/rss+xml" />
	<link>http://usanov.net/129-sozdanie-insert-skripta-dlya-dannyx-tablicy-mssql</link>
	<description>На иконку RSS можно нажать :)</description>
	<lastBuildDate>Thu, 09 Feb 2012 12:35:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Автор: Ikutsin</title>
		<link>http://usanov.net/129-sozdanie-insert-skripta-dlya-dannyx-tablicy-mssql/comment-page-1#comment-653</link>
		<dc:creator>Ikutsin</dc:creator>
		<pubDate>Tue, 28 Sep 2010 12:16:37 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wordpress/?p=129#comment-653</guid>
		<description>Да, действительно короче. Спасибо за пример.</description>
		<content:encoded><![CDATA[<p>Да, действительно короче. Спасибо за пример.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Chinas</title>
		<link>http://usanov.net/129-sozdanie-insert-skripta-dlya-dannyx-tablicy-mssql/comment-page-1#comment-651</link>
		<dc:creator>Chinas</dc:creator>
		<pubDate>Mon, 27 Sep 2010 14:16:25 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wordpress/?p=129#comment-651</guid>
		<description>USE [ALFACHECK]
GO
/****** Object:  StoredProcedure [utils].[Restore_ScriptForTable]    Script Date: 09/27/2010 17:16:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Костенко Юрий
-- Create date: 23.09.2010
-- Description:	Создание скрипта восстановления данных таблицы
-- =============================================
CREATE PROCEDURE [utils].[Restore_ScriptForTable] @TableName varchar(100)
AS
BEGIN
	SET NOCOUNT ON;
	
	Declare @fields varchar(1000), @val varchar(4000)
	Declare @column varchar(50), @type varchar(20)
	Create table #value (val varchar(4000))

	SET @fields=&#039;&#039;
	SET @val=&#039;&#039;	
	SET @TableName=replace(replace(@TableName,&#039;]&#039;,&#039;&#039;),&#039;[&#039;,&#039;&#039;)

	Declare fl cursor for 
		SELECT c.Name as ColumnName, t.Name as TypeName
		From sys.all_objects o, sys.all_columns c, sys.types t, sys.schemas s
		Where o.[Type]=&#039;U&#039; 
			and o.object_id=c.object_id 
			and o.schema_id=s.schema_id
			and c.system_type_id=t.system_type_id
			and t.Name&#039;sysname&#039;
			and ((s.[Name]+&#039;.&#039;+o.[Name]=@TableName and @TableName like &#039;%.%&#039;)
				or (o.[Name]=@TableName and not @TableName like &#039;%.%&#039;))
	Open fl

	FETCH NEXT FROM fl 
	INTO @column, @type
	
	WHILE @@FETCH_STATUS=0
	BEGIN
	if @type like &#039;%varchar&#039;
		SET @val=@val+&#039;(case when not &#039;+@column+&#039; is null then &#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039; else &#039;&#039;&#039;&#039; end)+isnull(replace(&#039;+@column+&#039;,&#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039;,&#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039;),&#039;&#039;NULL&#039;&#039;)+(case when not &#039;+@column+&#039; is null then &#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039; else &#039;&#039;&#039;&#039; end)+&#039;&#039;,&#039;&#039;+&#039;
	else
		begin
		if @type=&#039;datetime&#039;
			SET @val=@val+&#039;(case when not &#039;+@column+&#039; is null then &#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039; else &#039;&#039;&#039;&#039; end)+isnull(convert(varchar(20),&#039;+@column+&#039;,120),&#039;&#039;NULL&#039;&#039;)+(case when not &#039;+@column+&#039; is null then &#039;&#039;&#039;&#039;&#039;&#039;&#039;&#039; else &#039;&#039;&#039;&#039; end)+&#039;&#039;,&#039;&#039;+&#039;
		else
			SET @val=@val+&#039;isnull(CAST(&#039;+@column+&#039; as varchar(2000)),&#039;&#039;NULL&#039;&#039;)+&#039;&#039;,&#039;&#039;+&#039;
		end
	SET @fields=@fields+&#039;[&#039;+@column+&#039;],&#039;
	FETCH NEXT FROM fl
	INTO @column, @type
	END

	CLOSE fl
	DEALLOCATE fl
	
	SET @val=left(@val,len(@val)-5)
	SET @fields=left(@fields,len(@fields)-1)
	exec(&#039;insert into #value(val) Select &#039;+@val+&#039; From &#039;+@TableName)

	Declare tbl cursor for
		Select val
		From #value

	Open tbl

	FETCH NEXT FROM tbl 
	INTO @val

	print &#039;TRUNCATE TABLE &#039;+@TableName
	print &#039;SET IDENTITY_INSERT &#039;+@TableName+&#039; ON&#039;

	WHILE @@FETCH_STATUS=0
	BEGIN
	print &#039;INSERT INTO &#039;+@TableName+&#039;(&#039;+@fields+&#039;) VALUES(&#039;+@val+&#039;)&#039;
	FETCH NEXT FROM tbl 
	INTO @val
	END	

	print &#039;SET IDENTITY_INSERT &#039;+@TableName+&#039; OFF&#039;

	CLOSE tbl
	DEALLOCATE tbl

END</description>
		<content:encoded><![CDATA[<p>USE [ALFACHECK]<br />
GO<br />
/****** Object:  StoredProcedure [utils].[Restore_ScriptForTable]    Script Date: 09/27/2010 17:16:12 ******/<br />
SET ANSI_NULLS ON<br />
GO<br />
SET QUOTED_IDENTIFIER ON<br />
GO<br />
&#8212; =============================================<br />
&#8212; Author:		Костенко Юрий<br />
&#8212; Create date: 23.09.2010<br />
&#8212; Description:	Создание скрипта восстановления данных таблицы<br />
&#8212; =============================================<br />
CREATE PROCEDURE [utils].[Restore_ScriptForTable] @TableName varchar(100)<br />
AS<br />
BEGIN<br />
	SET NOCOUNT ON;</p>
<p>	Declare @fields varchar(1000), @val varchar(4000)<br />
	Declare @column varchar(50), @type varchar(20)<br />
	Create table #value (val varchar(4000))</p>
<p>	SET @fields=&#187;<br />
	SET @val=&#187;<br />
	SET @TableName=replace(replace(@TableName,&#8217;]',&#187;),&#8217;[','')</p>
<p>	Declare fl cursor for<br />
		SELECT c.Name as ColumnName, t.Name as TypeName<br />
		From sys.all_objects o, sys.all_columns c, sys.types t, sys.schemas s<br />
		Where o.[Type]=&#8217;U&#8217;<br />
			and o.object_id=c.object_id<br />
			and o.schema_id=s.schema_id<br />
			and c.system_type_id=t.system_type_id<br />
			and t.Name&#8217;sysname&#8217;<br />
			and ((s.[Name]+&#8217;.'+o.[Name]=@TableName and @TableName like &#8216;%.%&#8217;)<br />
				or (o.[Name]=@TableName and not @TableName like &#8216;%.%&#8217;))<br />
	Open fl</p>
<p>	FETCH NEXT FROM fl<br />
	INTO @column, @type</p>
<p>	WHILE @@FETCH_STATUS=0<br />
	BEGIN<br />
	if @type like &#8216;%varchar&#8217;<br />
		SET @val=@val+&#8217;(case when not &#8216;+@column+&#8217; is null then &#187;&#187;&#187;&#187; else &#187;&#187; end)+isnull(replace(&#8216;+@column+&#8217;,&#187;&#187;&#187;&#187;,&#187;&#187;&#187;&#187;&#187;&#187;),&#187;NULL&#187;)+(case when not &#8216;+@column+&#8217; is null then &#187;&#187;&#187;&#187; else &#187;&#187; end)+&#187;,&#187;+&#8217;<br />
	else<br />
		begin<br />
		if @type=&#8217;datetime&#8217;<br />
			SET @val=@val+&#8217;(case when not &#8216;+@column+&#8217; is null then &#187;&#187;&#187;&#187; else &#187;&#187; end)+isnull(convert(varchar(20),&#8217;+@column+&#8217;,120),&#187;NULL&#187;)+(case when not &#8216;+@column+&#8217; is null then &#187;&#187;&#187;&#187; else &#187;&#187; end)+&#187;,&#187;+&#8217;<br />
		else<br />
			SET @val=@val+&#8217;isnull(CAST(&#8216;+@column+&#8217; as varchar(2000)),&#187;NULL&#187;)+&#187;,&#187;+&#8217;<br />
		end<br />
	SET @fields=@fields+&#8217;['+@column+'],&#8217;<br />
	FETCH NEXT FROM fl<br />
	INTO @column, @type<br />
	END</p>
<p>	CLOSE fl<br />
	DEALLOCATE fl</p>
<p>	SET @val=left(@val,len(@val)-5)<br />
	SET @fields=left(@fields,len(@fields)-1)<br />
	exec(&#8216;insert into #value(val) Select &#8216;+@val+&#8217; From &#8216;+@TableName)</p>
<p>	Declare tbl cursor for<br />
		Select val<br />
		From #value</p>
<p>	Open tbl</p>
<p>	FETCH NEXT FROM tbl<br />
	INTO @val</p>
<p>	print &#8216;TRUNCATE TABLE &#8216;+@TableName<br />
	print &#8216;SET IDENTITY_INSERT &#8216;+@TableName+&#8217; ON&#8217;</p>
<p>	WHILE @@FETCH_STATUS=0<br />
	BEGIN<br />
	print &#8216;INSERT INTO &#8216;+@TableName+&#8217;(&#8216;+@fields+&#8217;) VALUES(&#8216;+@val+&#8217;)&#8217;<br />
	FETCH NEXT FROM tbl<br />
	INTO @val<br />
	END	</p>
<p>	print &#8216;SET IDENTITY_INSERT &#8216;+@TableName+&#8217; OFF&#8217;</p>
<p>	CLOSE tbl<br />
	DEALLOCATE tbl</p>
<p>END</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Ikutsin</title>
		<link>http://usanov.net/129-sozdanie-insert-skripta-dlya-dannyx-tablicy-mssql/comment-page-1#comment-647</link>
		<dc:creator>Ikutsin</dc:creator>
		<pubDate>Fri, 24 Sep 2010 06:51:34 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wordpress/?p=129#comment-647</guid>
		<description>Поделитесь?</description>
		<content:encoded><![CDATA[<p>Поделитесь?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Chinas</title>
		<link>http://usanov.net/129-sozdanie-insert-skripta-dlya-dannyx-tablicy-mssql/comment-page-1#comment-646</link>
		<dc:creator>Chinas</dc:creator>
		<pubDate>Fri, 24 Sep 2010 06:33:43 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wordpress/?p=129#comment-646</guid>
		<description>Я уже решал эту задачу. Процедура получилась раза в два легче.</description>
		<content:encoded><![CDATA[<p>Я уже решал эту задачу. Процедура получилась раза в два легче.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Ikutsin</title>
		<link>http://usanov.net/129-sozdanie-insert-skripta-dlya-dannyx-tablicy-mssql/comment-page-1#comment-36</link>
		<dc:creator>Ikutsin</dc:creator>
		<pubDate>Wed, 18 Feb 2009 08:49:52 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wordpress/?p=129#comment-36</guid>
		<description>На своем блоге, Женя выложил утилитку, специально для этих целей: &lt;a href=&quot;http://www.eugenedotnet.com/?p=328&quot; rel=&quot;nofollow&quot;&gt;eugenedotnet&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>На своем блоге, Женя выложил утилитку, специально для этих целей: <noindex><a href="http://www.eugenedotnet.com/?p=328" rel="nofollow">eugenedotnet</a></noindex></p>
]]></content:encoded>
	</item>
</channel>
</rss>

