zoukankan
html css js c++ java
导出表数据脚本的存储过程 [转自CSDN]
生成表数据脚本的存储过程
CREATE
PROCEDURE
dbo.OutputData
@tablename
sysname
AS
declare
@column
varchar
(
1000
)
declare
@columndata
varchar
(
1000
)
declare
@sql
varchar
(
4000
)
declare
@xtype
tinyint
declare
@name
sysname
declare
@objectId
int
declare
@objectname
sysname
declare
@ident
int
set
nocount
on
set
@objectId
=
object_id
(
@tablename
)
if
@objectId
is
null
--
判断对象是否存在
begin
print
@tablename
+
'
对象不存在
'
return
end
set
@objectname
=
rtrim
(
object_name
(
@objectId
))
if
@objectname
is
null
or
charindex
(
@objectname
,
@tablename
)
=
0
begin
print
@tablename
+
'
对象不在当前数据库中
'
return
end
if
OBJECTPROPERTY
(
@objectId
,
'
IsTable
'
)
<
>
1
--
判断对象是否是表
begin
print
@tablename
+
'
对象不是表
'
return
end
select
@ident
=
status
&
0x80
from
syscolumns
where
id
=
@objectid
and
status
&
0x80
=
0x80
if
@ident
is
not
null
print
'
SET IDENTITY_INSERT
'
+
@TableName
+
'
ON
'
--
定义游标,循环取数据并生成Insert语句
declare
syscolumns_cursor
cursor
for
select
c.name,c.xtype
from
syscolumns c
where
c.id
=
@objectid
order
by
c.colid
--
打开游标
open
syscolumns_cursor
set
@column
=
''
set
@columndata
=
''
fetch
next
from
syscolumns_cursor
into
@name
,
@xtype
while
@@fetch_status
<>
-
1
begin
if
@@fetch_status
<>
-
2
begin
if
@xtype
not
in
(
189
,
34
,
35
,
99
,
98
)
--
timestamp不需处理,image,text,ntext,sql_variant 暂时不处理
begin
set
@column
=
@column
+
case
when
len
(
@column
)
=
0
then
''
else
'
,
'
end
+
@name
set
@columndata
=
@columndata
+
case
when
len
(
@columndata
)
=
0
then
''
else
'
,
''
,
''
,
'
end
+
case
when
@xtype
in
(
167
,
175
)
then
'''''''''
+
'
+
@name
+
'
+
'''''''''
--
varchar,char
when
@xtype
in
(
231
,
239
)
then
'''
N
''''''
+
'
+
@name
+
'
+
'''''''''
--
nvarchar,nchar
when
@xtype
=
61
then
'''''''''
+convert(char(23),
'
+
@name
+
'
,121)+
'''''''''
--
datetime
when
@xtype
=
58
then
'''''''''
+convert(char(16),
'
+
@name
+
'
,120)+
'''''''''
--
smalldatetime
when
@xtype
=
36
then
'''''''''
+convert(char(36),
'
+
@name
+
'
)+
'''''''''
--
uniqueidentifier
else
@name
end
end
end
fetch
next
from
syscolumns_cursor
into
@name
,
@xtype
end
close
syscolumns_cursor
deallocate
syscolumns_cursor
set
@sql
=
'
set nocount on select
''
insert
'
+
@tablename
+
'
(
'
+
@column
+
'
) values(
''
as
''
--
''
,
'
+
@columndata
+
'
,
''
)
''
from
'
+
@tablename
print
'
--
'
+
@sql
exec
(
@sql
)
if
@ident
is
not
null
print
'
SET IDENTITY_INSERT
'
+
@TableName
+
'
OFF
'
exec
OutputData2
'
表名
'
查看全文
相关阅读:
[NHibernate]条件查询Criteria Query
[JQuery]用InsertAfter实现图片走马灯展示效果
[NHibernate]HQL查询
[NHibernate]基本配置与测试
[HTML/CSS]margin属性用法
[HTML/CSS]盒子模型,块级元素和行内元素
[Asp.net MVC]Asp.net MVC5系列——布局视图
[c#基础]值类型和引用类型的Equals,==的区别
用中间件实现读负载均衡的数据库群集
论数据库连接池对中间件性能的重要性
原文地址:https://www.cnblogs.com/LCX/p/1105767.html
最新文章
简单讨论一下 jQuery 事件
微信内嵌H5网页 解决js倒计时失效
微信小程序开源项目库汇总
五角星评分效果
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
window.onload多个共存
NodeJS+MongoDB+AngularJS+Bootstrap书店示例
基于gulp编写的一个简单实用的前端开发环境
js手机号批量滚动抽奖代码实现
mysql批量删除指定前缀或后缀表
热门文章
android-个性化进度条
Android源代码分析之Framework的MediaPlayer
《Head First 设计模式》学习笔记——工厂模式 + 抽象工厂模式
cocos2dx 自己主动加入cpp文件到android.mk
raknet unity3d
EEPlat 的数据层模式
spring注入成员对象
poj 3154 Graveyard 贪心
iOS:编译错误Undefined symbols for architecture i386: _OBJC_CLASS_$_XXX", referenced from: error
[NHibernate]增删改操作
Copyright © 2011-2022 走看看