SQL 字符串与16进制互换
在网上看到SQL字符串转16进制的语句,经过小小添加,现将SQL字符串与16进制互换的方法记录,以供以后查看。
--SQL char->HEX code
DECLARE @str VARCHAR(4000)
SET @str='SELECT * from dbo.TaskHistory' --Your sql char
DECLARE @i INT,@Asi INT,@ModS INT,@res VARCHAR(800),@Len INT,@Cres VARCHAR(4),@tempstr VARBINARY(400)
SELECT @i = 1,@res='',@len=DATALENGTH(@str),@tempStr = CONVERT(VARBINARY,@str)
WHILE @i<=@len
BEGIN
SELECT @Asi = SUBSTRING(@tempstr,1,1),@Cres=''
WHILE @Asi <> 0
BEGIN
SELECT @Mods = @Asi %16,
@Cres=CASE WHEN (@Mods > 9) THEN CHAR(ASCII('A')+@Mods-10)+@Cres ELSE CAST(@Mods AS VARCHAR(4)) + @Cres END,
@Asi = @Asi/16
END
SELECT @res = @res + @Cres,@tempStr = SUBSTRING(@tempStr,2,@len-1),@i = @i+1
END
SELECT '0x'+@res
--HEX code->SQL char
这里使用最简单的方式,利用Cast直接转,这里有个小小的问题,可能出现字符编码不正确或乱码,当出现这种情况时,将varchar换成nvarchar,反之亦然。
--HEX->SQL Char
DECLARE @S VARCHAR(4000);
SET @S=CAST(
0x53454C454354202A2046524F4D2064626F2E5461736B486973746F7279 --your hex code
AS VARCHAR(4000));
SELECT @S
相关文档:
(18)用EXISTS替换DISTINCT:
当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT。一般可以考虑用EXIST替换, EXISTS 使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果。例子:
(低效):
SELECT DISTINCT DEPT_NO,DEPT_NAME  ......
在T-SQL中监视进程
DBA更愿意使用T-SQL的原因是可以比“活动监视器”更加灵活地获得信息。
1. sp_who和sp_who2
存储过程sp_who也返回当前连接数据库实例,与“活动监视器”非常类似。然而,用户可能发现自己更愿意使用未公开说明的sp_who2存储过程,因为它提供 ......
thunder:
1.MYSQL实现
mysql> select * from user;
+----+----------+----------+-----------------+
| ID | username | password | email |
+----+----------+----------+-----------------+
| 1 | admin | admin &nb ......
转自:http://hi.baidu.com/arslong/blog/item/b23307e76252342cb8382001.html
Item01
连接字符串中常用的声明有:
服务器声明:Data Source
、Server
和Addr
等。
数据库声明:Initial Catalog
和DataBase
等。
集成Windows
账号的安全性声明:Integrated
Security
和Trusted_Connection
等。
使用数据库 ......
use AdventureWorks
GO
SELECT c.LastName from Person.Contact c;
SELECT * from HumanResources.Employee e
INNER JOIN HumanResources.Employee m
ON e.ManagerID = m.EmployeeID; n
SELECT ProductID,Name,ProductNumber,ReorderPoint
from Production.Product
where ProductID in( select ProductID fro ......