易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL SERVER 2005数据加密

-- 示例一, 使用证书加密数据.
-- 建立测试数据表
CREATE TABLE tb(ID int IDENTITY (1,1),data varbinary (8000));
GO
-- 建立证书一, 该证书使用数据库主密钥来加密
CREATE CERTIFICATE Cert_Demo1 
WITH 
  SUBJECT = N'cert1 encryption by database master key' ,
  START_DATE = '2008-01-01' ,
    EXPIRY_DATE = '2008-12-31'
GO
-- 建立证书二, 该证书使用密码来加密
CREATE CERTIFICATE Cert_Demo2
  ENCRYPTION BY PASSWORD = 'liangCK.123'
WITH 
  SUBJECT = N'cert1 encrption by password' ,
    START_DATE = '2008-01-01' ,
  EXPIRY_DATE = '2008-12-31'
GO
-- 此时, 两个证书已经建立完, 现在可以用这两个证书来对数据加密
-- 在对表tb 做INSERT 时, 使用ENCRYPTBYCERT 加密
INSERT tb(data)
  SELECT ENCRYPTBYCERT ( CERT_ID ( N'Cert_Demo1' ), N' 这是证书1 加密的内容-liangCK' );   -- 使用证书1 加密
INSERT tb(data)
  SELECT ENCRYPTBYCERT ( CERT_ID ( N'Cert_Demo2' ), N' 这是证书2 加密的内容-liangCK' );   -- 使用证书2 加密
--ok. 现在已经对数据加密保证了. 现在我们SELECT 看看
SELECT * from tb ;
-- 现在对内容进行解密显示.
-- 解密时, 使用DECRYPTBYCERT
SELECT 证书1 解密 = CONVERT ( NVARCHAR (50), DECRYPTBYCERT ( CERT_ID ( N'Cert_Demo1' ),data)),
       -- 使用证书2 解密时, 要指定DECRYPTBYCERT 的第三个参数,
       -- 因为在创建时, 指定了ENCRYPTION BY PASSWORD.
       -- 所以这里要通过这个密码来解密. 否则解密失败
       证书2 解密
= CONVERT ( NVARCHAR (50), DECRYPTBYCERT ( CERT_ID ( N'Cert_Demo2' ),data, N'liangCK.123' ))
from tb ;
-- 我们可以看到, 因为第2 条记录是证书2 加密的. 所以使用证书1 将无法解密. 所以返回NULL
/*
证书1 解密                                 &


相关文档:

在Eclipse中用JDBC连接Sql Server 2005总结

* 最近因为开发活动需要,用上了Eclipse,并要求使用精简版的SQL(即 2005)来进行开发项目 * 
1.准备工作: 准备相关的软件(Eclipse除外,开源软件可以从官网下载) 
<1>.Microsoft 2005 Express Edition 
下载地址:http://download.microsoft.com/download/0/9/0 ......

SQL 合并行,返回带分隔字符的字符串

 
--合并行,并返回合并的值
Create proc [dbo].[proUniteRow]
@tab varchar(30),           --表名
@col varchar(30),           --合并的列名
@where varchar(2000),     &nbs ......

SQL 多行值合并为一个值

方法(1)
SELECT stuff((select ','+ltrim(ColumnName) from #A for xml path('')
),1,1,'')
/*
102,103,104,105
*/
方法(2)
DECLARE @s NVARCHAR(1000)='';
SELECT @s+=ColumnName+','  from #A;
SELECT @s; ......

关于sql更改计算机名和服务器名一致或"错误 18483

今天在配置数据库发布和分发时总是报出现 18483 错误
提示说:错误 18483:未能连接到服务器 "XXX",因为 'distributor_admin'未在该服务器上定义为远程登陆。
我的发布和分发是同一个服务器,"XXX" 为我的机器名,分发数据库是默认的名称,而我在另外一台机器上做时就正常。
1、设置共享复制目录:
      ......

(转)利用 Sql 中查看表结构信息

转自:http://hi.baidu.com/cszoo/blog/item/2439a5f517c19c2dbc31093c.html
 
(1)
SELECT
表名=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,' ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号