SQL SERVER2005操作略记

[with ties]
当从表中查询TOP记录时.可能会把满足条件但又不属于TOP的记录漏掉.
为了防止这种情况,可以使用关键字with ties;
select TOP 10 with ties * from Table where [] order by columnName asc;
以上语句可以把columnName 排序后,如果第十条的columnName 和第十一条的columnName 相同,
一样会把第十一条记录选出来.
当然也可以在with ties 直接跟上如果会重复的字段,来防止会漏掉的记录.

=》SQL SEVER2005连接字符串:
connectionString="Data Source=192.168.2.239,1433;Initial Catalog=HKSE;Persist Security Info=True;User ID=id;Password=word;
connectionString="Server=BOBER\SQLExpress;Integrated Security=true;DataBase=KK";

=》(1)查询表中表的个数:
select count(TABLE_NAME) as TABLE_COUNT from information_schema.tables:
(2)设置乍增变量ID为1
dbcc checkident(Table_Name,reseed,0)
将带有自增列的表的自增列值初始值设为0,即第一行该值为1;

=》操作EXCEL文件时的SHEET表信息:
(1)string   sFileName   =   @"c:\a.xls";   /别忘了添加引用Excel
  object   missing=Missing.Value;  
  Excel.Application   excelApp   =   new   Excel.Application();  
  excelApp.Workbooks.Open(sFileName,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);    
  for(int   i=0;i<excelApp.Workbooks[1].Worksheets.Count;i++)  
  {  
  Excel.Worksheet   ws   =   (Excel.Worksheet)excelApp.Workbooks[1].Worksheets[i+1];  
  string   sSheetName   =   ws.Name;  
  }

(2)String   connString   =   "Provider=Microsoft.Jet.OLEDB.4.0;"   +    
                  "Data   Source="   +   excelFile   +   ";Extended   Properties=Excel   8.0;";   
          objConn   =   new   OleDbConnection(connString);  
          objConn.Open();  
          dt   =   objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,   null);  

=>一般数据库操作略记:
--=======================================sqlserver全==================
---opendrowset
--操作sqlserver数据库
select * from openrowset('sqloledb','192.168.2.55';'sa';'sa','select * from hks.dbo.hks_mm_user')
--操作access数据库
select * from openrowset('Microsoft.Jet.OLEDB.4.0','d:\data.mdb';'admin';'',admin)
--操作excel数据库
select * from openrowset('microsoft.jet.oledb.4.0' ,'excel 5.0;hdr=no;imex=2;database=D:\data.xls',[sheet1$])
--操作text
select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=no;DATABASE=d:\',[a#txt])
--操作db2
select * from openrowset('ibmdadb2','dsn=rich','select * from RICH.I_INSURANCEFOOD') --dsn 链接
select * from openrowset('ibmdadb2','dsn=ffff;uid=rich;pwd=*&^%4321','select * from RICH.I_INSURANCEFOOD') --dsn 链接 带密码
--=======================================================================

--opendatasource
--操作sqlserver
select * from opendatasource('sqloledb','data source="192.168.2.55";user id="sa";password="sa"').hks.dbo.hks_mm_user
---操作access
select *
FROM  OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\data.mdb";user id=admin;password=;')...admin
--操作excel
select *
FROM  OPENDATASOURCE ('Microsoft.jet.oledb.4.0', 'data source="d:\data.xls";Extended properties=Excel 5.0' )...[sheet1$]
--操作text
select * from openDataSource('microsoft.jet.oledb.4.0','Data Source=D:\;Extended properties=Text;')...a#txt
--====================================================================
--因为SQL2005默认是没有开启'Ad Hoc Distributed Queries' 组件,开启方法如下
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
--======================================access========================
--access操作其他数据库----------
--sqlserver
select * from hks_mm_user IN [ODBC][ODBC;DRIVER=SQL SERVER;user id=SA;password=sa;server=192.168.2.55;DATABASE=hks;]
--excel--
SELECT * FROM [Excel 5.0;database=D:\web\ASP\jck1\database\book.xls].[Sheet1$];
--Text-
SELECT * FROM [Text;database=D:\].a.txt;
--vf--
SELECT * FROM [dbase 5.0;database=D:\].vf.DBF
--======================================================================

作者:Bober Song
出处:http://bober.cnblogs.com/
衣冠勤售: http://www.YiGuanShou.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2007-11-14 13:51 衣冠勤售 阅读(463) 评论(1)  编辑 收藏

 回复 引用   
#1楼 2008-01-09 17:11 dali[未注册用户]
定期删除备份的SQL数据库的脚本
比如某个数据库下对SQL SERVER的数据库进行了每天的备份,现在要保留7天以内的,其他的删除掉,用ASP可以实现了,但要用到filesystemobject,不大爽
首先写一个js文件clearDatabaseBackup,内容如下
function deleteBackupFile(beforedays) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var dir = fso.GetFolder("D:\\数据库备份"); //改成你的数据库备份目录
for (var fc = new Enumerator(dir.SubFolders); !fc.atEnd(); fc.moveNext()) {
//假设数据文件的备份文件都是以abc_log开头的,比如abc_log_xxxx
if (fc.item().name.substr(0,9) == "abc_log") {
for (var logfiles = new Enumerator(fc.item().Files); !logfiles.atEnd(); logfiles.moveNext()) {
var fileName = logfiles.item().name;
var year = "20" + fileName.substr(19, 2);
var month = fileName.substr(21, 2);
var day = fileName.substr(23, 2);
var days = Math.round(((new Date()).getTime() - Date.UTC(year, month - 1, day)) / 1000 / 60 / 60 / 24);
if (days >= beforedays) logfiles.item().Delete();
}
}
}
}
//保存一周内的数据库备份文件

deleteBackupFile(7);
然后写一个BAT文件,加入到任务计划
cscript clearDatabaseBackup.js


作者:Bober Song
出处:http://bober.cnblogs.com/
衣冠勤售:http://www.YiGuanShou.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。