设为首页 加入收藏

TOP

从数据库中获取Insert语句 (二)
2014-11-23 20:16:37 来源: 作者: 【 】 浏览:41
Tags:数据库 获取 Insert 语句
ELSE -- int,bit,numeric,decimal 类型
BEGIN
SET @stringData = @stringData + ''''
+ '''+isnull('''''
+ '''''+convert(varchar(200),'
+ @colName + ')+'''''
+ ''''',''NULL'')+'',''+'
END

SET @string = @string + @colName + ','

FETCH NEXT FROM cursCol INTO @colName, @dataType
END
DECLARE @Query NVARCHAR(4000)
--设置表的过滤条件
IF @filterCondition = ''
OR @filterCondition IS NULL
BEGIN
SET @filterCondition = ' 1=1 '
END

SET @query = 'SELECT ''' + SUBSTRING(@string, 0, LEN(@string))
+ ') VALUES(''+ ' + SUBSTRING(@stringData, 0, LEN(@stringData) - 2)
+ '''+'')'' FROM ' + @tableName + ' where ' + @filterCondition
PRINT @query
EXEC sp_executesql @query
CLOSE cursCol
DEALLOCATE cursCol

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

1、不使用过滤条件功能

InsertGenerator leave,''
得到生成insert语句的sql为:

SELECT 'INSERT leave(LeaveGUID,LeaveName,LeaveDay,Memo,Status) VALUES(' + ''
+ ISNULL('''' + CONVERT(VARCHAR(200), LeaveGUID) + '''', 'NULL') + ','
+ '' + ISNULL('''' + LeaveName + '''', 'NULL') + ',' + ''
+ ISNULL('''' + CONVERT(VARCHAR(200), LeaveDay) + '''', 'NULL') + ','
+ '' + ISNULL('''' + Memo + '''', 'NULL') + ',' + '' + ISNULL(''''
+ Status + '''',
'NULL') + ''
+ ')'
FROM leave
WHERE 1 = 1

结果:

\

2、使用过滤添加条件功能:

InsertGenerator leave,'status=''同意'''
得到生成insert语句的sql为:

SELECT 'INSERT leave(LeaveGUID,LeaveName,LeaveDay,Memo,Status) VALUES(' + ''
+ ISNULL('''' + CONVERT(VARCHAR(200), LeaveGUID) + '''', 'NULL') + ','
+ '' + ISNULL('''' + LeaveName + '''', 'NULL') + ',' + ''
+ ISNULL('''' + CONVERT(VARCHAR(200), LeaveDay) + '''', 'NULL') + ','
+ '' + ISNULL('''' + Memo + '''', 'NULL') + ',' + '' + ISNULL(''''
+ Status + '''',
'NULL') + ''
+ ')'
FROM leave
WHERE status = '同意'

结果:

\

作者“Cocoa Is My Mistress And Dotnet Is My Wife.”

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用事务操作SQLite数据库和一些.. 下一篇T-SQL语句小结

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: