仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1007|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网站制作之SQL Server 开辟之 复制表数据的SQL剧本...

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:22:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功server|剧本|数据利用SQLServer2000自带的“天生SQL剧本”工具,能够天生创立表、视图、存储历程等的SQL剧本。那末,可否将表中的数据也天生为SQL剧本,在查询剖析器中实行这些剧本后主动将数据导进到SQLServer中呢?谜底是一定的。上面的存储历程是一名高人写的,这位高人的姓氏已无人晓得,但SQLServer社区中偶然还可看到此不朽之作。CREATEPROCEDUREdbo.OutputData
@tablenamesysname
AS
declare@columnvarchar(1000)
declare@columndatavarchar(1000)
declare@sqlvarchar(4000)
declare@xtypetinyint
declare@namesysname
declare@objectIdint
declare@objectnamesysname
declare@identint

setnocounton
set@objectId=object_id(@tablename)
if@objectIdisnull--判别工具是不是存在
begin
print@tablename+工具不存在
return
endset@objectname=rtrim(object_name(@objectId))
if@objectnameisnullorcharindex(@objectname,@tablename)=0
begin
print@tablename+工具不在以后数据库中
return
endifOBJECTPROPERTY(@objectId,IsTable)1--判别工具是不是是表
begin
print@tablename+工具不是表
return
endselect@ident=status&0x80fromsyscolumnswhereid=@objectidandstatus&0x80=0x80if@identisnotnull
printSETIDENTITY_INSERT+@TableName+ON--界说游标,轮回取数据并天生Insert语句
declaresyscolumns_cursorcursorfor
selectc.name,c.xtypefromsyscolumnsc
wherec.id=@objectid
orderbyc.colid--翻开游标
opensyscolumns_cursor
set@column=
set@columndata=
fetchnextfromsyscolumns_cursorinto@name,@xtype
while@@fetch_status-1
begin
if@@fetch_status-2
begin
if@xtypenotin(189,34,35,99,98)--timestamp不需处置,image,text,ntext,sql_variant临时不处置
begin
set@column=@column+
casewhenlen(@column)=0then
else,
end+@name
set@columndata=@columndata+
casewhenlen(@columndata)=0then
else,,,
end+
casewhen@xtypein(167,175)then++@name++--varchar,char
when@xtypein(231,239)thenN++@name++--nvarchar,nchar
when@xtype=61then+convert(char(23),+@name+,121)+--datetime
when@xtype=58then+convert(char(16),+@name+,120)+--smalldatetime
when@xtype=36then+convert(char(36),+@name+)+--uniqueidentifier
else@name
end
end
end
fetchnextfromsyscolumns_cursorinto@name,@xtype
end
closesyscolumns_cursor
deallocatesyscolumns_cursorset@sql=setnocountonselectinsert+@tablename+(+@column+)values(as--,+@columndata+,)from+@tablenameprint--+@sql
exec(@sql)if@identisnotnull
printSETIDENTITY_INSERT+@TableName+OFF挪用时execOutputDatamyuser个中myUser中以后数据库中存在的表操作被同步到从库上后,则主从都“回天无力”。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-19 09:50:50 | 只看该作者
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
不帅 该用户已被删除
板凳
发表于 2015-1-28 05:59:10 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
只想知道 该用户已被删除
地板
发表于 2015-2-5 18:30:33 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
活着的死人 该用户已被删除
5#
发表于 2015-2-13 05:56:25 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
小女巫 该用户已被删除
6#
发表于 2015-3-3 16:36:17 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
谁可相欹 该用户已被删除
7#
发表于 2015-3-11 12:19:38 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
飘灵儿 该用户已被删除
8#
发表于 2015-3-18 14:15:27 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
柔情似水 该用户已被删除
9#
发表于 2015-3-26 02:28:22 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表