日度归档:2018年10月8日

mssql sqlserver 权限相关命令 grant(授予)、deny(拒绝)、revoke(删除)


摘要:
下文讲述sql脚本中对指定sql用户,进行权限授予 拒绝 删除的操作命令简介,如下所示:
实验环境:sql server 2008 R2


  ---对用户test 授予对表 tableName 进行更新 删除 插入操作权限
  grant insert,update,delete 
    on tableName
	to test 
	 with grant option 
	  ---with grant option 使用此属性后该用户可对其它用户进行grant授权操作


  
 ---禁止test 用户对表tableName进行update操作
 deny update 
    on tableName
    to test 

 ---删除用户test 对表tablename的删除权限
 REVOKE DELETE ON tableName
  FROM test 

mssql sqlserver查看数据行所在物理页的方法分享


摘要:
下文分享三种查看数据行所在物理页的方法分享,如下所示:
实验环境:sql server 2008 R2



方式1:使用%%physloc%%系统常量的方法

  select %%physloc%%  as [物理地址],* from tableName where ...
  /*
     physloc系统常量可结合  sys.fn_physlocFormatter   或  fn_physLocCracker 
	 返回数据行所对应的文件号 页号  行号
  */
 


方式2:使用sys.system_internals_allocation_units 返回表对象对应的起始 文件号 页号

     select OBJECT_NAME(object_id) as Name,p.rows,a.type_desc ,a.total_pages,a.first_page
		,a.first_iam_page,a.root_page
		from sys.partitions P 
		join sys.system_internals_allocation_units a on p.partition_id = a.container_id
			where object_id = object_id('数据库表名称') 
     /*
	   first_page说明:
	    16进制形式存储
            前两组表示文件编号
			后四组表示页编号 
	 */
 


方式3:使用DBCC IND 系统命令 返回页ID 文件号iD

   ---DBCC IND(数据库名称,'表名',-1)
   DBCC IND(dfd,'dbo.test',-1)
 
mssql_sqlserver_dbcc_ind

mssql_sqlserver_dbcc_ind

mssql sqlserver default默认值用法简介


摘要:
当我们在建表时或建立存储过程时,使用了列或参数默认值时,如果操作时,输入default关键字,则会自动使用默认值进行相关操作,如下所示:
实验环境:sql server 2008 R2



default value功能简介

default value:代表当前操作使用默认值,无需进行赋值操作

default value举例应用

 ---表插入使用default value方法分享

create table 
test(keyId int identity,
info varchar(30) default 'maomao365.com',
infoB nvarchar(30)
)

go
insert into test 
(info,infoB)
values(default,
N'sql学习博客'
)
go 2


select * from test 
go
truncate table test
drop     table test 


go

---存储过程默认值方法分享
create proc pr_test
@t varchar(30) = 'maomao365.com'
as 
begin
select @t as '默认值 '
end

go

---存储过程使用默认值的方法
exec pr_test 
@t =default
go
drop proc pr_test 
mssql_sqlserver_default关键字

mssql_sqlserver_default关键字