¡¡¡¡³£Óô洢¹ý³Ì¼¯½õ,¶¼ÊÇһЩmssql³£ÓõÄһЩ£¬´ó¼Ò¿ÉÒÔ¸ù¾ÝÐèҪѡÔñʹÓᣠ¡¡¡¡=================·ÖÒ³========================== ====================Êý¾Ý¿â»¹ÔµÄ´æ´¢¹ý³Ì============ ¡¡¡¡×÷ÓÃ:ɱµô´«ÈëÊý¾Ý¿âÖеĻ½ø³ÌÒÔ½øÐб¸·Ý»¹ÔµÈ¶ÀÕ¼²Ù×÷ ¡¡¡¡===================°¢À²®Êý×Öת´óдÖÐÎÄ============= ¡¡¡¡Àý£ºÊäÈë12345£¬³ÌÐò¸ø³ö£ºÒ¼Íò·¡ÇªÈþ°ÛËÁʰÎé ¡¡¡¡Àý£ºÊäÈë10023040£¬³ÌÐò¸ø³ö£ºÒ¼ÇªÁí·¡ÍòÈþǪÁíËÁʰ ¡¡¡¡½â¾ö·½°¸Ö®Ò»(ÔÚSqlServer2000ÖвâÊÔͨ¹ý)£º ¡¡¡¡--²âÊÔ£ºÓÐ0ºÍûÓÐ0µÄÇé¿ö ¡¡¡¡SELECT dbo.fun_cgnum(900000000),dbo.fun_cgnum(903002051),dbo.fun_cgnum(903002050) ¡¡¡¡PS£ºÓÐÐËȤµÄÅóÓÑ¿ÉÒÔ¼ÌÐø¿¼ÂÇÓÐСÊýµãÒÔ¼°Ìí¼Óµ¥Î»(Ôª/½Ç/·Ö)µÄÇé¿ösqlserver ³£Óô洢¹ý³Ì¼¯½õ
¡¡¡¡³£Óô洢¹ý³Ì¼¯½õ£¬¶¼ÊÇһЩmssql³£ÓõÄһЩ£¬´ó¼Ò¿ÉÒÔ¸ù¾ÝÐèҪѡÔñʹÓá£
¡¡¡¡/*·ÖÒ³²éÕÒÊý¾Ý*/
¡¡¡¡CREATE PROCEDURE [dbo].[GetRecordSet]
¡¡¡¡@strSql varchar(8000),--²éѯsql,Èçselect * from [user]
¡¡¡¡@PageIndex int,--²éѯµ±Ò³ºÅ
¡¡¡¡@PageSize int--ÿҳÏÔʾ¼Ç¼
¡¡¡¡AS
¡¡¡¡set nocount on
¡¡¡¡declare @p1 int
¡¡¡¡declare @currentPage int
¡¡¡¡set @currentPage = 0
¡¡¡¡declare @RowCount int
¡¡¡¡set @RowCount = 0
¡¡¡¡declare @PageCount int
¡¡¡¡set @PageCount = 0
¡¡¡¡exec sp_cursoropen @p1 output,@strSql,@scrollopt=1,@ccopt=1,@rowcount=@rowCount output --µÃµ½×ܼǼÊý
¡¡¡¡select @PageCount=ceiling(1.0*@rowCount/@pagesize) --µÃµ½×ÜÒ³Êý
¡¡¡¡,@currentPage=(@PageIndex-1)*@PageSize+1
¡¡¡¡select @RowCount,@PageCount
¡¡¡¡exec sp_cursorfetch @p1,16,@currentPage,@PageSize
¡¡¡¡exec sp_cursorclose @p1
¡¡¡¡set nocount off
¡¡¡¡GO
¡¡¡¡=========================Óû§×¢²á============================
¡¡¡¡/*
¡¡¡¡Óû§×¢²á£¬Ò²ËãÊÇÌí¼Ó°É
¡¡¡¡*/
¡¡¡¡Create proc [dbo].[UserAdd]
¡¡¡¡(
¡¡¡¡@loginID nvarchar(50), ¡¡¡¡¡¡¡¡--µÇ¼ÕʺÅ
¡¡¡¡@password nvarchar(50), --ÃÜÂë
¡¡¡¡@email nvarchar(200) --µç×ÓÐÅÏä
¡¡¡¡)
¡¡¡¡as
¡¡¡¡declare @userID int --Óû§±àºÅ
¡¡¡¡--µÇ¼Õ˺ÅÒѾ±»×¢²á
¡¡¡¡if exists(select loginID from tableName where loginID = @loginID)
¡¡¡¡begin
¡¡¡¡return -1;
¡¡¡¡end
¡¡¡¡--ÓÊÏäÒѾ±»×¢²á
¡¡¡¡else if exists(select email from tableName where email = @email)
¡¡¡¡begin
¡¡¡¡return -2;
¡¡¡¡end
¡¡¡¡--×¢²á³É¹¦
¡¡¡¡else
¡¡¡¡begin
¡¡¡¡select @userID = isnull(max(userID),100000)+1 from tableName
¡¡¡¡insert into tableName
¡¡¡¡(userID,loginID,[password],userName,linkNum,address,email,createTime,status)
¡¡¡¡values
¡¡¡¡(@userID,@loginID,@password,'','','',@email,getdate(),1)
¡¡¡¡return @userID
¡¡¡¡end
¡¡¡¡¨C1.¸ø±íÖÐ×Ö¶ÎÌí¼ÓÃèÊöÐÅÏ¢
¡¡¡¡Create table T2 (id int , name char (20))
¡¡¡¡GO
¡¡¡¡EXEC sp_addextendedproperty 'MS_Description', 'Employee ID', 'user', dbo, 'table', T2, 'column', id
¡¡¡¡EXEC sp_updateextendedproperty 'MS_Description', 'this is a test', 'user', dbo, 'table', T2, 'column', id
¡¡¡¡¨C2.ÐÞ¸ÄÊý¾Ý¿âÃû³Æ
¡¡¡¡EXEC sp_renamedb 'old_db_name', 'new_db_name'
¡¡¡¡¨C3.ÐÞ¸ÄÊý¾Ý±íÃû³ÆºÍ×Ö¶ÎÃû³Æ
¡¡¡¡EXEC sp_rename 'old_table_name', 'new_table_name'¨CÐÞ¸ÄÊý¾Ý±íÃû³Æ
¡¡¡¡EXEC sp_rename 'table_name.[old_column_name]', 'new_column_name', 'COLUMN'¨CÐÞ¸Ä×Ö¶ÎÃû³Æ
¡¡¡¡¨C4.¸ø¶¨´æ´¢¹ý³ÌÃû£¬»ñÈ¡´æ´¢¹ý³ÌÄÚÈÝ
¡¡¡¡exec sp_helptext sp_name
¡¡¡¡/*ÒÔÏÂÊÇÓйذ²È«¿ØÖƵÄϵͳ´æ´¢¹ý³Ì»ò SQL Óï¾ä£¬ÏêϸÓï·¨²éÔÄ¡¶Áª»ú´ÔÊé¡·Ïà¹ØÄÚÈÝ*/
¡¡¡¡¨C´´½¨Ð嵀 SQL Server µÇ¼£¬Ê¹Óû§µÃÒÔÁ¬½ÓʹÓà SQL Server Éí·ÝÑéÖ¤µÄ SQL Server¡£
¡¡¡¡EXEC sp_addlogin @loginame = '', @passwd = '', @defdb = '', @deflanguage = NULL, @sid = NULL, @encryptopt = NULL
¡¡¡¡¨Cʹ Windows NT Óû§»ò×éÕÊ»§µÃÒÔʹÓà Windows Éí·ÝÑéÖ¤Á¬½Óµ½ SQL Server¡£
¡¡¡¡EXEC sp_grantlogin @loginame = ''
¡¡¡¡¨Cɾ³ý SQL Server µÇ¼£¬ÒÔ×èֹʹÓøõǼÃû·ÃÎÊ SQL Server¡£
¡¡¡¡EXEC sp_droplogin @loginame = ''
¡¡¡¡¨C×èÖ¹ Windows NT Óû§»ò×éÁ¬½Óµ½ SQL Server¡£
¡¡¡¡EXEC sp_denylogin @loginame = ''
¡¡¡¡¨C´Ó SQL Server ÖÐɾ³ýÓà sp_grantlogin »ò sp_denylogin ´´½¨µÄ Windows NT Óû§»ò×éµÄµÇ¼Ïî¡£
¡¡¡¡EXEC sp_revokelogin @loginame = ''
¡¡¡¡¨C¸ü¸ÄµÇ¼µÄĬÈÏÊý¾Ý¿â¡£
¡¡¡¡EXEC sp_defaultdb @loginame = '', @defdb = ''
¡¡¡¡¨C¸ü¸ÄµÇ¼µÄĬÈÏÓïÑÔ¡£
¡¡¡¡EXEC sp_defaultlanguage @loginame = '', @language = ''
¡¡¡¡¨CÌí¼Ó»ò¸ü¸Ä SQL Server µÇ¼ÃÜÂë¡£
¡¡¡¡EXEC sp_password @old = '', @new = '', @loginame = ''
¡¡¡¡¨CÌí¼Ó·þÎñÆ÷½ÇɫгÉÔ±¡£
¡¡¡¡EXEC sp_addsrvrolemember @loginame = '', @rolename = ''
¡¡¡¡¨CÌí¼Ó·þÎñÆ÷½Çɫij³ÉÔ±¡£
¡¡¡¡EXEC sp_dropsrvrolemember @loginame = '' , @rolename = ''
¡¡¡¡¨CΪ SQL Server µÇ¼»ò Windows NT Óû§»ò×éÔÚµ±Ç°Êý¾Ý¿âÖÐÌí¼ÓÒ»¸ö°²È«ÕÊ»§£¬²¢Ê¹ÆäÄܹ»±»ÊÚÓèÔÚÊý¾Ý¿âÖÐÖ´ÐлµÄȨÏÞ(ÊÚÓèĬÈϵġ°public¡±Êý¾Ý¿â½ÇÉ«)¡£
¡¡¡¡EXEC sp_grantdbaccess @loginame = '', @name_in_db = NULL
¡¡¡¡¨C»ò
¡¡¡¡EXEC sp_adduser @loginame = '', @name_in_db = NULL, @grpname = ''
¡¡¡¡¨C´Óµ±Ç°Êý¾Ý¿âÖÐɾ³ý°²È«ÕÊ»§¡£
¡¡¡¡EXEC sp_revokedbaccess @name_in_db = ''
¡¡¡¡¨C»ò
¡¡¡¡EXEC sp_dropuser @name_in_db = ''
¡¡¡¡¨CÔÚµ±Ç°Êý¾Ý¿â´´½¨ÐÂÊý¾Ý¿â½ÇÉ«¡£
¡¡¡¡EXEC sp_addrole @rolename = '', @ownername = ''
¡¡¡¡¨CÔÚµ±Ç°Êý¾Ý¿âɾ³ýijÊý¾Ý¿â½ÇÉ«¡£
¡¡¡¡EXEC sp_droprole @rolename = ''
¡¡¡¡¨CÔÚµ±Ç°Êý¾Ý¿âÖÐÌí¼ÓÊý¾Ý¿â½ÇɫгÉÔ±¡£
¡¡¡¡EXEC sp_addrolemember @rolename = '', @membername = ''
¡¡¡¡¨CÔÚµ±Ç°Êý¾Ý¿âÖÐɾ³ýÊý¾Ý¿â½Çɫij³ÉÔ±¡£
¡¡¡¡EXEC sp_droprolemember @rolename = '', @membername = ''
¡¡¡¡¨CȨÏÞ·ÖÅ䏸Êý¾Ý¿â½ÇÉ«¡¢±í¡¢´æ´¢¹ý³ÌµÈ¶ÔÏó
¡¡¡¡¨C1¡¢ÊÚȨ·ÃÎÊ
¡¡¡¡GRANT
¡¡¡¡¨C2¡¢¾Ü¾ø·ÃÎÊ
¡¡¡¡DENY
¡¡¡¡¨C3¡¢È¡ÏûÊÚȨ»ò¾Ü¾ø
¡¡¡¡REVOKE
¡¡¡¡¨C4¡¢Sample(pubs):
¡¡¡¡GRANT SELECT ON authors TO Limperator
¡¡¡¡DENY SELECT ON authors TO Limperator
¡¡¡¡REVOKE SELECT ON authors TO Limperator
¡¡¡¡SQL code
¡¡¡¡create proc killspid (@dbname varchar(20))
¡¡¡¡as
¡¡¡¡begin
¡¡¡¡declare @sql nvarchar(500)
¡¡¡¡declare @spid int
¡¡¡¡set @sql='declare getspid cursor for
¡¡¡¡select spid
¡¡¡¡from sysprocesses
¡¡¡¡where dbid=db_id('''+@dbname+''')'
¡¡¡¡exec (@sql)
¡¡¡¡open getspid
¡¡¡¡fetch next from getspid
¡¡¡¡into @spid
¡¡¡¡while @@fetch_status <>-1
¡¡¡¡begin
¡¡¡¡exec('kill '+@spid)
¡¡¡¡fetch next from getspid
¡¡¡¡into @spid
¡¡¡¡end
¡¡¡¡close getspid
¡¡¡¡deallocate getspid
¡¡¡¡end
¡¡¡¡GO
¡¡¡¡SQL code
¡¡¡¡CREATE FUNCTION fun_cgnum
¡¡¡¡(@num INT)
¡¡¡¡RETURNS VARCHAR(100)
¡¡¡¡AS
¡¡¡¡BEGIN
¡¡¡¡DECLARE @temp INT,@res INT,@i TINYINT
¡¡¡¡DECLARE @str VARCHAR(100),@no VARCHAR(20),@unit VARCHAR(16)
¡¡¡¡SELECT @str='',@no='ÁíÒ¼·¡ÈþËÁÎé½Æâ°Æ¾Á',@unit='ʰ°ÛǪÍòʰ°ÛǪÒÚ'
¡¡¡¡SET @temp=@num³£Óô洢¹ý³Ì¼¯½õ£¬¶¼ÊÇһЩmssql³£ÓõÄһЩ£¬´ó¼Ò¿ÉÒÔ¸ù¾ÝÐèҪѡÔñʹÓá£
¡¡¡¡SELECT @i=0,@res=@temp%10,@temp=@temp/10
¡¡¡¡WHILE @temp>0
¡¡¡¡BEGIN
¡¡¡¡IF @i=0
¡¡¡¡SET @str=SUBSTRING(@no,@res+1,1)
¡¡¡¡ELSE
¡¡¡¡SET @str=SUBSTRING(@no,@res+1,1)+SUBSTRING(@unit,@i,1)+@str
¡¡¡¡SELECT @res=@temp%10,@temp=@temp/10
¡¡¡¡SET @i=@i+1
¡¡¡¡END
¡¡¡¡SET @str=SUBSTRING(@no,@res+1,1)+SUBSTRING(@unit,@i,1)+@str
¡¡¡¡SET @str=REPLACE(@str,'Áíʰ','Áí')
¡¡¡¡SET @str=REPLACE(@str,'Áí°Û','Áí')
¡¡¡¡SET @str=REPLACE(@str,'ÁíǪ','Áí')
¡¡¡¡SET @str=REPLACE(@str,'Áíʰ','Áí')
¡¡¡¡SET @str=REPLACE(@str,'ÁíÍò','Íò')
¡¡¡¡WHILE @i>0
¡¡¡¡BEGIN
¡¡¡¡SET @str=REPLACE(@str,'ÁíÁí','Áí')
¡¡¡¡SET @i=CHARINDEX('ÁíÁí',@str)
¡¡¡¡END
¡¡¡¡SET @str=REPLACE(@str,'ÁíÍò','Íò')
¡¡¡¡SET @str=REPLACE(@str,'ÒÚÍò','ÒÚ')
¡¡¡¡IF RIGHT(@str,1)='Áí'
¡¡¡¡SET @str=LEFT(@str,LEN(@str)-1)
¡¡¡¡RETURN @str
¡¡¡¡END
¡¡¡¡GO

