今天使用了一个通过存储过程生成sqlserver数据库insert语句的存储过程,我觉得很好用,谢谢这位高手了
if exists (select * from sysobjects where type='p' and name='UspOutputData')
drop proc UspOutputData
GO
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(2000)
declare @columndata varchar(2000)
declare @sql varchar(8000)
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 'The object not exists'
return
end
--此判断不严密
set @objectname=rtrim(object_name(@objectId))
if @objectname is null or charindex(@objectname,@tablename)=0
begin
print 'object not in current database'
return
end
-- 判斷對象是否是table
if OBJECTPROPERTY(@objectId,'IsTable') < > 1
begin
print 'The object is not table'
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'
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'
GO
exec UspOutputData T_Sys_Dict_Data
觉得这个不错,最后使用exec UspOutputData T_Sys_Dict_Data 执行存储过程就ok了。 T_Sys_Dict_Data 是表名,任何表都可以。谢谢!
分享到:
相关推荐
在学生管理系统中,SQL Server 2000作为数据存储的核心,承载了所有学生信息、成绩、出勤等数据。开发者可以使用SQL语句来创建、查询、更新和删除数据库中的记录,以满足系统各种操作需求。 系统架构上,JSP和SQL ...
对数据库的增删改查操作,存储过程以及子查询的使用。
3. **Transact-SQL(T-SQL)**:SQL Server 2000使用T-SQL进行数据库操作,包括数据查询、插入、更新和删除,以及事务处理、存储过程、触发器等高级功能。 4. **数据库设计**:在SQL Server 2000中,涉及表的设计、...
SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在2000年发布,提供了广泛的企业级数据管理解决方案。SQL Server 2000驱动包是连接到SQL Server数据库所必需的软件组件,使得应用程序能够与数据库进行...
基于C#实现的一款方便、快捷的数据库文档查询、导出工具,支持Word、Excel、PDF、Html、Xml、Json、MarkDown等...在此可以对数据库中的表、视图、存储过程等对象实现自定义分组,方便后续管理 3.快捷查询 4.导入导出
这个是web版的,好处是比较灵活,查询直接选择所须的字段,是其他生成器没有的。删除和修改都可以选字段条件。 有用的话欢迎大家顶一下! 这个是sqlserver数据库。 Mysql版地址:...
描述:批量导入数据到数据库,将datatable数据快速添加到数据库中,
Server 2000 批量附加数据库工具 【版本未知,2011年6月20日亲测有效】 工具操作简介: 分离数据库不能批量,只能选中后右键分离; 附加数据库,可以批量附加。请先定位到文件夹,点击【搜索数据】按钮,然后选中第...
在实际开发和测试过程中,开发者首先会创建数据库结构,然后编写JavaBean来封装业务逻辑,接着使用JSP来生成动态网页。测试数据的导入可以帮助检查应用程序是否正确地与数据库交互,验证功能的完整性和性能。这个...
4. **存储过程**:存储过程是一组预先编译的SQL语句,可以在需要时调用执行。它们可以包含控制流语句,提高代码复用性和效率。 5. **函数**:函数是返回单个值的预定义或自定义SQL代码块。它们可以接受参数,根据...
- **预编译语句(PreparedStatement)**:对于有参数的SQL语句,可以使用`PreparedStatement`,它能提高安全性并优化性能。例如:`PreparedStatement ps = con.prepareStatement("update tb_stu set sname='李四' ...
windows server 2008 R2操作系统中的 SQLerver 2008 R2双机热备配置文档
它提供了Java应用程序连接MySQL数据库的能力,使得开发者可以使用SQL语句执行数据库操作。驱动分为两种类型:Type 1(纯Java驱动)和Type 4(完全Java网络驱动),其中Type 4是当前推荐使用的,因为它无需中间层,...
本篇将详细讲解一款基于"jsp+servlet+java+sqlerver+strut"技术栈构建的购物系统,帮助读者深入理解这些技术的应用和交互。 首先,我们来剖析这个系统的基石——JSP(JavaServer Pages)。JSP是一种动态网页技术,...
基于asp.net+C#+sqlerver开发的竞赛报名系统(源码+系统分析文档).zip 本课题旨在设计并实现一个浙警院竞赛报名系统,实现网上报名功能,辅助学校实现竞赛报名的管理。本系统的主要用户为管理员、报名用户;本系统...
查卡,试用,试出,写终身卡登陆,登陆,新服务处理,处理为新数组数据,写历史记录,导出未使用卡_被单击,检查类型,读显数据,分页初始化,按页显示,显页语句,导出未使用卡,读回配置项,客户连接,新处理函数
- **Oracle**:`INSERT INTO new_table (col1) SELECT col1 FROM old_table` - **SQL Server**:同上 - 如果目标表不存在: - **Oracle**:`CREATE TABLE new_table AS SELECT * FROM old_table` - **SQL ...
- **添加数据**:通过INSERT语句向数据库表中插入新的记录。 - **删除数据**:使用DELETE语句移除不需要的记录,可以是单条或批量删除。 - **查询数据**:通过SELECT语句从数据库中检索特定信息,可以组合使用...
1、查询索引大小或使用率;2、查询运行慢的语句;3、查询触发器;4、重新生成索引;5、DBCC;6、查询堵塞
此外,了解 SQL Server 特有的特性,如存储过程、视图、触发器等,以及如何在 Kettle 中使用它们进行数据处理也是很重要的。Kettle 支持 SQL 查询的执行,可以用于执行 DML(数据操纵语言)操作,比如 INSERT、...