SqlServer SQL语句更改数据库名,表名,列名

转自:http://visionsky.blog.51cto.com/733317/330341

一、更改数据库名

sp_renamedb  更改数据库的名称。

语法

参数

  • [ @dbname = ] ‘ old_name ‘  是数据库的当前名称。old_name 为 sysname 类型,无默认值。
  • [ @newname = ] ‘ new_name ‘  是数据库的新名称。new_name 必须遵循标识符规则。new_name 为 sysname 类型,无默认值。

返回代码值

  • 0 (成功)或非零数字(失败)

权限

  • 只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行 sp_renamedb。

示例

下例将数据库 accounting 改名为 financial。

二、更改表名或列名

A. 重命名表

下例将表 customers 重命名为 custs。

B. 重命名列

下例将表 customers 中的列 contact title 重命名为 title。

 

Sql Server2005 Row_Numerb分页

转自:http://bbs.csdn.net/topics/340134909

1、为什么要使用row方案:
在oracle里有row_number虚列,mySql有limit关键字分页,他们都有一个比较通用的分页方案,使得hibernate等类似的程序可以拼接sql字符串提供通用的分页。
而sqlserver却没有这样的分页方案。
于是乎,本人稍稍改装row_number()over(order by )用法,获得了一个通用的分页方案。
如提供了sql如下:

被row方案的分页程序处理后变成(在select 后面添加 top 开始位置 0 __tc,在外层嵌套固定模式的查询sql)

这样就得到了拼接出通用的分页sql方案了。
并且经过本人测试发现,这套方案的运行速度不逊于任何一套其他方案。
其余各方面效率还有待考察,忘高人指点了。

2、row方案的排序:
row方案可以任意排序,只要修改最内层的select排序即可,应该来说是很简单易用的。
参考【追加说明1、】和【#80楼】

3、row方案和普通row_number()方案的区别:
一般的row方案:

使用了over(order by 表中的列),照成了必须由用户提供这个列,而不容易使用分页程序生成分页sql(如hibernate分页)。
而row方案使用的是一个常数列tempColumn,值永远是0。

这个列是静态的,只是为了使用row_number()函数,并不是真正的order by 依据,order by 实际看最内层。

我分析是因为row方案使用一个静态的列tempColumn,
这样可能被sql分析程序认为是无需排序的,省下了排序过程的开销。

4、数据测试:
现只在我一台机子上试过,希望路过的各位随手帮忙测试一下。
这也是我迟迟不结贴的缘故。[已结贴]
举手之劳,复制sql运行即可:

运行测试代码:

———————————————————–
以下为原帖:
———————————————————–
这套方案(下面简称row方案)是本人借鉴Oracle的row_number分页方法和sqlServerrow_number结合+上top分页方案合体版,经过本人初步测试。
效率非常快。(本人测试非常业余,还望高人帮忙测试。)
row方案的具体操作方法在这章帖子里:
一套原创的sqlserver通用分页方案 忘高人测试效率 先阿里嘎多了
比较了3种分页方式,分别是max方案,top方案,row方案

效率:
第1:row
第2:max
第3:top

缺点:
max:必须用户编写复杂Sql,不支持非唯一列排序
top:必须用户编写复杂Sql,不支持复合主键
row:不支持sqlServer2000

测试数据:
共320万条数据,每页显示10条数据,分别测试了2万页、15万页和32万页。

页码,top方案,max方案,row方案
2万,60ms,46ms,33ms
15万,453ms,343ms,310ms
32万,953ms,720ms,686ms

具体操作sql代码如下:
top方案:

max:

row:

Sql Server 日期格式化函数

转自:http://blog.163.com/yjdd005@126/blog/static/502426682007112895813356/

Sql Server 中一个非常强大的日期格式化函数(部分格式显示和系统语言有关)
Select CONVERT(varchar(100), GETDATE(), 0); –05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1); –05/16/06
Select CONVERT(varchar(100), GETDATE(), 2); –06.05.16
Select CONVERT(varchar(100), GETDATE(), 3); –16/05/06
Select CONVERT(varchar(100), GETDATE(), 4); –16.05.06
Select CONVERT(varchar(100), GETDATE(), 5); –16-05-06
Select CONVERT(varchar(100), GETDATE(), 6); –16 05 06
Select CONVERT(varchar(100), GETDATE(), 7); –05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8); –10:57:46
Select CONVERT(varchar(100), GETDATE(), 9); –05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10); –05-16-06
Select CONVERT(varchar(100), GETDATE(), 11); –06/05/16
Select CONVERT(varchar(100), GETDATE(), 12); –060516
Select CONVERT(varchar(100), GETDATE(), 13); –16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14); –10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20); –2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21); –2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22); –05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23); –2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24); –10:57:47
Select CONVERT(varchar(100), GETDATE(), 25); –2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100); –05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101); –05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102); –2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103); –16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104); –16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105); –16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106); –16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107); –05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108); –10:57:49
Select CONVERT(varchar(100), GETDATE(), 109); –05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110); –05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111); –2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112); –20060516
Select CONVERT(varchar(100), GETDATE(), 113); –16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114); –10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120); –2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121); –2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126); –2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130); –18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131); –18/04/1427 10:57:49:920AM

–常用:
Select CONVERT(varchar(100), GETDATE(), 8); –10:57:46
Select CONVERT(varchar(100), GETDATE(), 24); –10:57:47
Select CONVERT(varchar(100), GETDATE(), 108); –10:57:49
Select CONVERT(varchar(100), GETDATE(), 12); –060516
Select CONVERT(varchar(100), GETDATE(), 23); –2006-05-16