Welcome to Comunidade Bloggers |create|it|
Sign in
|
Join
|
Help
Search
Raúl Ribeiro
Windows SharePoint Services 3.0 , .net, Microsoft Office SharePoint 2007, Office 2007 and 2010
Home
Email
RSS 2.0
Atom 1.0
Recent Posts
Silverlight 5 Available for Download Today
Service Pack 1 for Microsoft SharePoint Server 2010 and SharePoint Foundation 2010
European SharePoint Conference 2011
Browser File Handling avoiding Permissive mode
Highlights from Microsoft’s CES 2011 Keynote
Tags
.Net
.Net 2.0
Asp.Net
Azure
CES 2011
devdays 2009
entrepreneurship
Geral
InfoPath 2007
MIX09
MIX10
MOSS 2007
MOSS 2007 - WCM
Office 14
Office 2007 Client
Office 2010
Posts em Português
PowerShell
Search Server 2008
Sharepoint
SharePoint 14
Sharepoint 2007
SharePoint 2010
SharePoint 2010 Beta 2
SharePoint Conference 2009
SharePoint Foundation 2010
Silverlight
Soa
TechDays
TechEd 2008
Virtual PC 2007
Vista
Visual Studio 2010
Web Content Management
WebServices
Windows
WWF
News
Share
|
Navigation
Home
Blogs
My Reader
Archives
December 2011 (1)
July 2011 (1)
June 2011 (2)
January 2011 (1)
November 2010 (2)
July 2010 (1)
May 2010 (2)
March 2010 (2)
February 2010 (1)
December 2009 (1)
November 2009 (7)
October 2009 (6)
August 2009 (1)
July 2009 (1)
June 2009 (1)
May 2009 (3)
April 2009 (2)
March 2009 (2)
February 2009 (5)
December 2008 (1)
November 2008 (2)
September 2008 (2)
August 2008 (2)
July 2008 (1)
June 2008 (1)
February 2008 (2)
January 2008 (2)
December 2007 (1)
November 2007 (1)
September 2007 (4)
August 2007 (2)
July 2007 (1)
June 2007 (3)
May 2007 (4)
April 2007 (7)
March 2007 (3)
February 2007 (1)
January 2007 (2)
December 2006 (3)
November 2006 (9)
October 2006 (1)
September 2006 (2)
August 2006 (1)
July 2006 (1)
May 2006 (5)
April 2006 (1)
February 2006 (3)
January 2006 (10)
November 2005 (2)
October 2005 (1)
September 2005 (9)
August 2005 (1)
July 2005 (4)
June 2005 (5)
May 2005 (4)
Generate INSERT scripts for any table
Retirado de :
DotnetSpider
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AUTHOR KARTHIK
DESCRIPTION BUILDS THE INSERT QUERY FOR ANY GIVEN TABLE
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
CREATE PROCEDURE SP_GEN_INSERT_SQL
@TABLENAME VARCHAR ( 2000 )
AS
BEGIN
DECLARE CUR_METADATA CURSOR FOR
SELECT NAME , XTYPE
FROM SYSCOLUMNS
WHERE ID IN ( SELECT ID FROM SYSOBJECTS WHERE NAME = @TABLENAME )
/* DECLARE VARIABLES*/
DECLARE @QRY1 VARCHAR (8000 ) /* Has column names */
DECLARE @QRY2 VARCHAR ( 8000 ) /* Has column values */
DECLARE @COLNAME VARCHAR ( 8000)
DECLARE @COLDATATYPE TINYINT
DECLARE @PRVCOLDATATYPE TINYINT
DECLARE @CHARPREFIX VARCHAR ( 5 )
DECLARE @CHARPOSTFIX VARCHAR ( 5 )
DECLARE @COLUMNSEPARATOR CHAR ( 1 )
DECLARE @NULLCHAR CHAR ( 4 )
SET @CHARPREFIX = ''''
SET @CHARPOSTFIX = ''''
SET @COLUMNSEPARATOR = ','
SET @NULLCHAR = 'NULL'
/* Start building the query */
SET @QRY1 = "SELECT 'INSERT INTO " + @TABLENAME + "(" --+ " VALUES ( "
SET @QRY2 = ''
OPEN CUR_METADATA
FETCH NEXT FROM CUR_METADATA INTO @COLNAME , @COLDATATYPE
WHILE @@FETCH_STATUS = 0
BEGIN
/* Add the Column names to the query */
SET @QRY1 = @QRY1 + @COLNAME + ','
/* Add Column values - Prefix & postfix the column values with quotes if they belong to any of the following datatypes */
/* TEXT - 35 | SMALLDATETIME - 58 | DATETIME - 61 | NTEXT - 99 | VARCHAR - 167 | CHAR - 175 | NVARCHAR - 231 | NCHAR - 239 */
IF ( @COLDATATYPE = 35 ) OR ( @COLDATATYPE = 58 ) OR ( @COLDATATYPE = 61 ) OR ( @COLDATATYPE = 99 ) OR
( @COLDATATYPE = 167 ) OR ( @COLDATATYPE = 175 ) OR ( @COLDATATYPE = 231 ) OR ( @COLDATATYPE = 239 )
BEGIN
IF @QRY2 = ''
BEGIN
SET @QRY2 = @QRY2 + @CHARPREFIX + @CHARPREFIX + @CHARPREFIX + '+ISNULL(CAST(' + @COLNAME + ' AS VARCHAR),' + "'NULL'" + ')' --+ "'')"
END
ELSE
BEGIN
SET @QRY2 = @QRY2 + @CHARPREFIX + @CHARPREFIX + @CHARPREFIX + '+ISNULL(CAST(' + @COLNAME + ' AS VARCHAR),' + "'NULL'" + ')' --+ "'')"
END
SET @QRY2 = @QRY2 + '+' + @CHARPOSTFIX + @CHARPOSTFIX + @CHARPOSTFIX + @COLUMNSEPARATOR
END
ELSE /*If the column is a number dont prefix/postfix quotes */
BEGIN
SET @QRY2 = @QRY2 + '''' + '+ISNULL(CAST(' + @COLNAME + ' AS VARCHAR),' + "'NULL'" + ')'
SET @QRY2 = @QRY2 + '+' + @CHARPOSTFIX + @COLUMNSEPARATOR
END
--PRINT @QRY2
SET @PRVCOLDATATYPE = @COLDATATYPE
FETCH NEXT FROM CUR_METADATA INTO @COLNAME , @COLDATATYPE
END
CLOSE CUR_METADATA
DEALLOCATE CUR_METADATA
SET @QRY1 = SUBSTRING ( @QRY1 , 1 , LEN ( @QRY1 ) - 1 )
SET @QRY1 = @QRY1 + ')VALUES(' --+ "'" + "'" +"'"
SET @QRY2 = SUBSTRING ( @QRY2 , 1 , LEN ( @QRY2 ) - 1 )
SET @QRY2 = @QRY2 + ')' + @CHARPOSTFIX
SET @QRY2 = @QRY2 + ' FROM ' + @TABLENAME
/* Create a temporary table to hold the result of the query - i.e. it will have the INSERT statements */
CREATE TABLE #SQLTRACE ( SQL VARCHAR ( 8000 ) )
--print @QRY1 + @QRY2
SET @QRY2 = ' INSERT INTO #SQLTRACE ' + @QRY1 + @QRY2
IF LEN ( @QRY2 ) < 8000
BEGIN
SET NOCOUNT ON
--PRINT @QRY2
EXEC ( @QRY2 )
--PRINT ' INSERT INTO #SQLTRACE ' + @QRY1 + @QRY2
--EXEC ( ' INSERT INTO #SQLTRACE ' + @QRY1 + @QRY2 )
UPDATE #SQLTRACE SET SQL = REPLACE ( SQL , "'NULL'" , @NULLCHAR )
SELECT * FROM #SQLTRACE
END
ELSE
BEGIN
PRINT 'UNABLE TO GENERATE INSERT STATEMENTS FOR TABLE :' +@TABLENAME
END
SET NOCOUNT OFF
END /* END OF FILE */
Posted:
Thursday, July 14, 2005 8:07 PM by
rrr
Filed under:
Geral
Comments
No Comments
Anonymous comments are disabled