MS SQLDRVER学习应用几点总结

来源:互联网 发布:编辑gif的软件 编辑:程序博客网 时间:2024/06/11 06:00
1、不支持从高类型转化到低类型

  虽然 SQL Server 有时会将 tinyint 或 smallint 值提升为 int 数据类型,但是它不会自动将 tinyint、smallint 或 int 提升为 bigint。例如,如果参数表达式的数据类型是 tinyint 或 smallint,某些聚合函数会把返回值的数据类型升级为 int。而这些聚合函数将不会返回 bigint,除非参数表达式本身就是 bigint 类型。

  当数据值一定要按照指定精确存储时,可以用带有小数的 decimal 数据类型来存储数字。

  数据精度就是数中数字个数,小数位数是数中小数点右边的数字个数,binary、varbinary、和 image 数据类型的长度是字节数。如果两个数类型相同则结果集中为确定的类型,

如果不同,刚以数字型的精度优先。

 

2、关于货币型数据

1、在数据前一定要货币符号

2、小数点后最多4 位,友多则用decimal型

3、带豆号的,把money型转化为字符串,在加豆号输出

 

3、关于文件组

创建和更改默认文件组是为了防止不确定的用户自定义对象和在特定的用户自定义文件组中抢空间。

经测试,一个文件组可以跨多个磁盘,一个文件则只能在一个磁盘。

 

4、强行断开MS SQLSERVER所有用户连接。

use   master  

  go  

   

  if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_killspid]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)  

  drop   procedure   [dbo].[p_killspid]  

  GO  

   

  create   proc   p_killspid  

  @dbname   varchar(200) --要关闭进程的数据库名 

  as      

  declare   @sql     nvarchar(500)      

  declare   @spid   nvarchar(20)  

   

  declare   #tb   cursor   for  

  select   spid=cast(spid   as   varchar(20))   from   master..sysprocesses   where   dbid=db_id(@dbname)  

  open   #tb  

  fetch   next   from   #tb   into   @spid  

  while   @@fetch_status=0  

  begin      

  exec('kill   '+@spid)  

  fetch   next   from   #tb   into   @spid  

  end      

  close   #tb  

  deallocate   #tb  

  go  

   

  --用法     

  exec   p_killspid     'PMDB'  

  go  

 

5、设定为单用户模式的语句:

EXEC SP_DBOPTION 'PMDB','SINGLE USER','TRUE'

 

6、MS SQL导出到excel语句

INSERT INTO OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 97-2000;HDR=YES;DATABASE=C:\TEST.XLS',Orders)。

原创粉丝点击