标签归档:数据库

mssql sqlserver 修改非对称密钥相关属性的方法分享


摘要:
下文讲述使用关键字Alter ASYMMETRIC KEY 关键字修改非对称密钥属性的方法分享,如下所示:
实验环境:sqlserver 2008 R2



ALTER ASYMMETRIC KEY 关键字简介

ALTER ASYMMETRIC KEY 关键字功能:
修改非对称加密的相关属性

ALTER ASYMMETRIC KEY 关键字语法说明:

ALTER ASYMMETRIC KEY Asym_Key_Name

::= | REMOVE PRIVATE KEY

::=
WITH PRIVATE KEY ( [ , ] )

::=
ENCRYPTION BY PASSWORD = ‘strongPassword’
| DECRYPTION BY PASSWORD = ‘oldPassword’
——-参数说明——
Asym_Key_Name:
非对称密钥定义时所使用的 密钥名称
REMOVE PRIVATE KEY
将非对称密钥中的私钥删除,保留公钥。
WITH PRIVATE KEY
修改私钥保护方式
ENCRYPTION BY PASSWORD =’strongPassword’
修改私钥所对应的新密码,输入的密码必须符合windows的密码策略。
DECRYPTION BY PASSWORD =’oldPassword’
私钥所对应的旧密码



ALTER ASYMMETRIC KEY 关键字举例应用

例1:
修改私钥密码

     
ALTER ASYMMETRIC KEY testKey    
    WITH PRIVATE KEY (  
    DECRYPTION BY PASSWORD = '',  
    ENCRYPTION BY PASSWORD = '');  
GO 


ALTER ASYMMETRIC KEY testKey    
    WITH PRIVATE KEY (  
    DECRYPTION BY PASSWORD = 'abcwewe_AL',  
    ENCRYPTION BY PASSWORD = 'abcwewe_AL123');  
GO 
  

例2:
删除非对称密钥testKey中的私钥,保留公钥

    ALTER ASYMMETRIC KEY testKey REMOVE PRIVATE KEY;  
     GO  

例3:
从私钥中删除密码保护

    OPEN MASTER KEY;  
      ALTER ASYMMETRIC KEY PacificSales09 WITH PRIVATE KEY (  
       DECRYPTION BY PASSWORD = '' );  
     GO
	 


OPEN MASTER KEY;  
      ALTER ASYMMETRIC KEY PacificSales09 WITH PRIVATE KEY (  
       DECRYPTION BY PASSWORD = 'abcwewe_AL123' );  
     GO
 

excel导入sqlserver时,数据为null的处理方法分享


摘要:
下文讲述sqlserver中导入excel时候,出现null的处理方法
实验环境:sqlserver 2008 R2


今天收到同事的一份客户资料,需要将excel导入至数据库中,但是当我导入进数据库时,发现身份证一栏中,有些导入为null,通过仔细比对发现
身份证号码中,存在字母的数据都导入进数据库了,其它全是数字的身份证号码都变为NULL了。

查阅了很多网上资料,发现sqlserver会对导入的数据做一个自动判断,并建立相应的数据类型,当sqlserver建立数值类型后,字符数据就无法导入数据表中,
此时则会导入null,问题就出在sqlserver数据类型上,知道问题后,此时我们只需保证excel中所有类型都为字符型就可以解决此类异常现象。

下文讲述处理此异常的终极方法,如下所示:

--将获取excel列中的数据类型设置为混合数据类型  IMEX =1,
---当遇到混合数据类型列时,强制使用nvarchar和ntext数据类型

---例: 将C盘中的test.xls文件导入至表tableTest中。
  use [数据库名称]
  go;
   SELECT * INTO tableTest
FROM OpenDataSource
('Microsoft.Jet.OLEDB.4.0','Data Source="C:\test.xls";Extended properties="Excel 5.0;HDR=Yes;IMEX=1;"')...[Sheet1$]

---注意:
---[Sheet1$] 表示excel中第一页Sheet   


当运行时出现 “消息 15281,级别 16,状态 1,第 1 行”时,此时我们需开启Ad Hoc Distributed Queries 组件,配置方法如下所示:

—开启方法

exec sp_configure ‘show advanced options’,1
reconfigure

exec sp_configure ‘Ad Hoc Distributed Queries’,1
reconfigure

go

/*导入excel脚本*/

—关闭方法

exec sp_configure ‘Ad Hoc Distributed Queries’,0
reconfigure
exec sp_configure ‘show advanced options’,0
reconfigure
go

mssql sqlserver 使用sql脚本对数据按照1,2,3 1,2,3 一批一批数据进行排序


摘要:
下文讲述使用row_number对数据按照1,2,3类别的排序方法分享,如下所示:
实验环境:sql server 2008 R2


例:
今天领导要求我们对一个数据表进行如下排序:
序号:
1
2
3
1
2
3

实现思路:
下文使用over开窗函数对数据进行群组排序,再结合order by对数据进行二次排序

   create table #maomao365([序号] int)
insert into  #maomao365([序号])
select 1 union all
select 2 union all
select 3 union all
select 1 union all
select 2 union all
select 3
Go
--测试数据结束
SELECT [序号]
FROM
(SELECT *, ROW_NUMBER() OVER (PARTITION BY [序号] ORDER BY [序号]) keyId  FROM #maomao365) t
ORDER BY t.keyId,t.[序号];

go

truncate table   #maomao365 
drop  table #maomao365 
mssql_sqlserver_排序应用_8418

mssql_sqlserver_排序应用_8418