导出数据脚本

SET NOCOUNT ON
DECLARE @tblName nvarchar(100)
DECLARE @DBName nvarchar(100)
DECLARE @i int
DECLARE @j int
DECLARE @ssql nvarchar(max)
DECLARE @sCloumns nvarchar(max)
DECLARE @CloumnName nvarchar(100)
DECLARE @xtype int
DECLARE @isnullable int
SET @tblName = 'tbl_StationInfo'
SET @DBName = 'Station'
CREATE TABLE #tbl_columnIDs(name nvarchar(100),id nvarchar(100),xtype int,isnullable int,row int identity)
INSERT INTO #tbl_columnIDs
SELECT name,id,xtype,isnullable
FROM SYSCOLUMNS WHERE id = OBJECT_ID(@tblName)
SET @i = 1
SELECT @j = max(row) FROM #tbl_columnIDs
--SET @sCloumns = ''
--SELECT @sCloumns = @sCloumns + ',' + name FROM #tbl_columnIDs
--SET @sCloumns = SUBSTRING(@sCloumns,2,LEN(@sCloumns))
--SET @sCloumns = '(' + @sCloumns +')'
--PRINT @sCloumns
SET @ssql = 'SELECT ''INSERT INTO ' + @tblName + '('''+CHAR(10)
WHILE (@i < @j + 1)
BEGIN
SELECT @CloumnName = name FROM #tbl_columnIDs WHERE ROW = @i
IF @i = @j
BEGIN
SET @ssql = @ssql + '+''' + @CloumnName + ')'''+ CHAR(10)
END
ELSE
BEGIN
SET @ssql = @ssql + '+''' + @CloumnName + ',''' + CHAR(10)
END
SET @i = @i + 1
END

SET @ssql = @ssql + '+'' VALUES (''' + CHAR(10)

SET @i = 1
SELECT @j = max(row) FROM #tbl_columnIDs
WHILE (@i < @j + 1)
BEGIN
SELECT @CloumnName = name,@xtype = xtype,@isnullable = isnullable FROM #tbl_columnIDs WHERE ROW = @i
IF @isnullable = 0
BEGIN
SET @CloumnName = CASE @xtype WHEN 61 THEN '+'',''+''''''''+CONVERT(nvarchar,'+@CloumnName+',121)+''''''''' --DateTime 61
WHEN 58 THEN '+'',''+''''''''+CONVERT(nvarchar,'+@CloumnName+',121)+''''''''' --smalldatetime 58
WHEN 48 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+''''''''' --tinyint
WHEN 52 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 56 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 59 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 60 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 62 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 104 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 108 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 122 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 127 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 189 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 231 THEN '+'',''+''N''+''''''''+REPLACE('+@CloumnName+','''''''','''''''''''')+'''''''''
WHEN 239 THEN '+'',''+''N''+''''''''+REPLACE('+@CloumnName+','''''''','''''''''''')+'''''''''
ELSE '+'',''+''''''''+REPLACE('+@CloumnName+','''''''','''''''''''')+'''''''''
END
END
ELSE
BEGIN
SET @CloumnName = CASE @xtype WHEN 61 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar,'+@CloumnName+',121)+'''''''',''NULL'')' --DateTime 61
WHEN 58 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar,'+@CloumnName+',121)+'''''''',''NULL'')' --smalldatetime 58
WHEN 48 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')' --tinyint
WHEN 52 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 56 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 59 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 60 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 62 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 104 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 108 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 122 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 127 THEN '+'',''+ISNULL(''''''''+CONVERT(nvarchar(50),'+@CloumnName+')+'''''''',''NULL'')'
WHEN 189 THEN '+'',''+''''''''+CONVERT(nvarchar(50),' + @CloumnName + ')+'''''''''
WHEN 231 THEN '+'',''+ISNULL(''N''+''''''''+REPLACE('+@CloumnName+','''''''','''''''''''')+'''''''',''NULL'')'
WHEN 239 THEN '+'',''+ISNULL(''N''+''''''''+REPLACE('+@CloumnName+','''''''','''''''''''')+'''''''',''NULL'')'
ELSE '+'',''+ISNULL(''''''''+REPLACE('+@CloumnName+','''''''','''''''''''')+'''''''',''NULL'')'
END
END
IF @i = 1
BEGIN
SET @CloumnName = SUBSTRING(@CloumnName,5,LEN(@CloumnName))
END
SET @ssql = @ssql + @CloumnName + CHAR(10)
SET @i = @i + 1
END
SET @ssql = @ssql + '+'')''' + CHAR(10)
SET @ssql = @ssql + 'FROM '+@DBName + '..' + @tblName

print @ssql
PRINT CHAR(10)+'SELECT ''GO'''
DROP TABLE #tbl_columnIDs

--select * from systypes
--
--
--
--
--PRINT @ssql
--
--
--DROP TABLE #tbl_columnIDs
--
--
--SELECT * FROM #tbl_columnIDs
--
--SELECT * FROM SYSCOLUMNS

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7192349/viewspace-1009325/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7192349/viewspace-1009325/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值