码迷,mamicode.com
首页 > 其他好文 > 详细

把表里的数据转换为insert 语句

时间:2015-01-22 19:48:01      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

当表里面有数据时,怎么把表里的数据转换为insert 语句

(从别人那里看来的用SQLServer 2008 R2测试可用)

CREATE PROC spGenInsertSQL @TableName AS VARCHAR(100)
AS
DECLARE xCursor CURSOR
FOR
SELECT NAME
,xusertype
FROM syscolumns
WHERE (id = OBJECT_ID(@TableName))

DECLARE @F1 VARCHAR(100)
DECLARE @F2 INTEGER
DECLARE @SQL VARCHAR(8000)

SET @sql = ‘SELECT    ‘‘INSERT    INTO    ‘ + @TableName + ‘    VALUES(‘‘‘

OPEN xCursor

FETCH xCursor
INTO @F1
,@F2

WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = @sql + + CASE
WHEN @F2 IN (
35
,58
,99
,167
,175
,231
,239
,61
)
THEN ‘    +    case    when    ‘ + @F1 + ‘    IS    NULL    then    ‘‘‘‘    else    ‘‘‘‘‘‘‘‘    end    +    ‘
ELSE ‘+‘
END + ‘replace(ISNULL(cast(‘ + @F1 + ‘    as    varchar(8000)),‘‘NULL‘‘),‘‘‘‘‘‘‘‘,‘‘‘‘‘‘‘‘‘‘‘‘)‘ + CASE
WHEN @F2 IN (
35
,58
,99
,167
,175
,231
,239
,61
)
THEN ‘    +    case    when    ‘ + @F1 + ‘    IS    NULL    then    ‘‘‘‘    else    ‘‘‘‘‘‘‘‘    end    +    ‘
ELSE ‘+‘
END + CHAR(13) + ‘‘‘,‘‘‘

FETCH NEXT
FROM xCursor
INTO @F1
,@F2
END

CLOSE xCursor

DEALLOCATE xCursor

SET @sql = left(@sql, len(@sql) - 5) + ‘    +    ‘‘)‘‘    FROM    ‘ + @TableName

EXEC (@sql)
GO
EXEC    spGenInsertSQL    tbl_Message            --tablename

 

把表里的数据转换为insert 语句

标签:

原文地址:http://www.cnblogs.com/beagreatman/p/4242427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!