ÔÚSQL SERVER 2005/2008ÖÐÓµÓÐÒ»¸ö¶ÔÏó
ÔÚSQL SERVER 2005/2008ÖÐÓµÓÐÒ»¸ö¶ÔÏó
´ÓSQL SERVER2000Éý¼¶µ½2005/2008ºó£¬Ò»¸öÎÒÃDZØÐëÖØÐÂÈÏʶµÄÇé¿öÊǶÔÏó²»ÔÙÓÐËùÓÐÕߣ¨owner£©¡£¼Ü¹¹°üº¬¶ÔÏ󣬼ܹ¹ÓÐËùÓÐÕß¡£Èç¹ûÄã²éѯ±ísys.objects£¬Ä㽫»á¿´µ½Õâ¿´ÆðÀ´ÊÇÕýÈ·µÄ£¬Ö»ÊDZíÖл¹ÓÐÒ»¸ö×Ö¶Îprincipal_id£¬µ«ÊÇÒ»°ãÇé¿öÏÂËü×ÜÊÇNULLÖµ¡£²»¾ÃǰһÌ죬ÎÒͻȻ¶Ôprincipal_id×ֶεıíʾÁËÒÉ»ó£ºÎªÊ²Ã´Òª´æÔÚÕâ¸ö×Ö¶ÎÄØ?ÎÒÓÖ×ÐϸµØ¿´ÁËÁª»ú°ïÖúsys.objectsµÄ½âÊÍ£º
“Èç¹û²»ÊǼܹ¹ËùÓÐÕߣ¬ÔòΪµ¥¸öËùÓÐÕßµÄ ID¡£Ä¬ÈÏÇé¿öÏ£¬¼Ü¹¹°üº¬µÄ¶ÔÏóÓɼܹ¹ËùÓÐÕßÓµÓС£²»¹ý£¬Í¨¹ýʹÓà ALTER AUTHORIZATION Óï¾ä¸ü¸ÄËùÓÐȨ¿ÉÒÔÖ¸¶¨±¸ÓÃËùÓÐÕß¡£”
»»¾ä»°Ëµ£¬¶ÔÏóÏÖÔÚ»¹¿ÉÒÔ±»Ò»¸öÓû§ËùÓµÓС£µ«ÊÇ“±¸ÓÃËùÓÐÕß”ÓÖÈÃÎÒ´òסÁË£¬ÕâʲôÒâË¼ÄØ£¿ÈÃÎÒÃÇÏȽ¨Á¢Ò»¸ö²âÊÔ»·¾³£ºÎÒÃÇÐèÒªÔÚÁ½¸ö²»Í¬¼Ü¹¹Öд´½¨Á½¸ö¶ÔÏó¡£ÕâЩ¼Ü¹¹ÊôÓÚ²»Í¬µÄËùÓÐÕߣ¬µ±È»ÎÒÃÇ»¹ÐèÒªÒ»¸ö²âÊÔÕߣ¬ËùÒÔ»¹ÐèÒªÒ»¸öµÚÈýÕß¡£ÈÃÎÒÃÇ´îÆðÕâ¸ö»·¾³°É£º
CREATE USER User1 WITHOUT LOGIN;
GO
CREATE USER User2 WITHOUT LOGIN;
GO
CREATE USER User3 WITHOUT LOGIN;
GO
/* ´´½¨Á½¸ö¼Ü¹¹£¬²¢ÈÃËüÊôÓÚ²»Í¬µÄÓû§*/
CREATE SCHEMA User1 AUTHORIZATION User1;
GO
CREATE SCHEMA User2 AUTHORIZATION User2;
GO
/* ºË²éһϼܹ¹£¬¿´ËüÊÇ·ñ±»²»Í¬¼Ü¹¹ËùÓµÓÐ*/
SELECT schema_id, [name], USER_NAME(principal_id) [Owner]
from sys.schemas
WHERE LEFT([name], 4) = 'User';
GO
ÏÖÔÚÎÒÃÇÒѾÓÐÁËÓû§ºÍ¼Ü¹¹£¬ÎÒÃÇÔÙ´´½¨Ò»¸ö±íºÍÒ»¸öÒýÓøñíµÄ´æ´¢¹ý³Ì¡£ÕâÁ½¸ö¶ÔÏó·ÖÊô²»Í¬µÄ¼Ü¹¹¡£Õâ¾ÍÊÇ˵ûÓÐÐγÉËùÓÐȨÁ´¡£
/* ÔÚuser1¼Ü¹¹ÉÏ´´½¨Ò»¸ö±í¡£*/
CREATE TABLE User1.MyTable (Number INT);
GO
INSERT INTO User1.MyTable (Number) VALUES (1);
INSERT INTO User1.MyTable (Number) VALUES (2);
INSERT INTO User1.MyTable (Number) VALUES (3);
GO
/* ÔÚuser2¼Ü¹¹Öд´½¨Ò»¸ö´æ´¢¹ý³Ì¡£ÒòΪuser1ºÍuser2ÕâÁ½¸ö¼Ü¹¹ÊôÓÚ²»Í¬µÄÓû§£¬ËùÒÔ²»ÄÜÐγÉËùÓÐȨÁ´¡£*/
CREATE PROC User2.MyProc
AS
BEGIN
SELECT Number from User1.MyTable;
END;
GO
/* ÊÚȨÎÒÃǵÄÊÔÑéÓû§user3Ö´Ðд洢¹ý³ÌµÄÄÜÁ¦¡£³ý´ËÖ®Í⣬user3ûÓÐÈκÎȨÀû£¬ÓÈÆäÊÇÔÚuser1.MyTableûÓÐȨÀû */
GRANT EXECUTE ON OBJECT::User2.MyProc TO User3;
GO
/* ºË²éÒ»ÏÂÎÒÃǸոմ´½¨µÄ¼Ü¹¹ºÍ¶ÔÏóºÍ&ldq
Ïà¹ØÎĵµ£º
һֱûÓÐÕÒµ½Ò»Öֺõķ½·¨À´ÒýÓÃÓзµ»ØÖµµÄ´æ´¢¹ý³ÌµÄ·½·¨£¬Ê¹ÎÒÔÚÌí¼ÓÊý¾ÝÖÐ×ßÁ˲»ÉÙµÄÍä·£¬×î½ü£¬ÔÚ²éÔÄÁË´óÁ¿µÄ×ÊÁÏÖ®ºó£¬ÖÕÓÚÔÚ΢ÈíµÄÒ»¸öʵÀýÖÐÕÒµ½ÁËÒ»ÖÖÁ¼ºÃµÄ·½·¨¡£
Ê×ÏȱàдºÃÒ»Óзµ»ØÖµµÄ´æ´¢¹ý³Ì
create procedure proc_name
@para1 nchar(20), --ÊäÈë²ÎÊý
@ ......
--1. ´´½¨±í£¬Ìí¼Ó²âÊÔÊý¾Ý
CREATE TABLE tb(id int, [value] varchar(10))
INSERT tb SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc'
--SELECT * from tb
/**//*
id value
----------- ----------
1 aa
1 bb
2 aaa
......
ÎÒÃÇÒª×öµ½²»µ«»áдSQL,»¹Òª×öµ½Ð´³öÐÔÄÜÓÅÁ¼µÄSQL,ÒÔÏÂΪ±ÊÕßѧϰ¡¢ÕªÂ¼¡¢²¢»ã×ܲ¿·Ö×ÊÁÏÓë´ó¼Ò·ÖÏí£¡
£¨1£© Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
ORACLE µÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom× ......
½ñÌìÎÒÔÚSQL Server 2005ÖÐÓýű¾´´½¨Ò»ÕÅ±í£¬²é×ÊÁÏ·¢ÏÖÓеĽű¾ÖÐ×Ö¶ÎÓмÓ[]ÖзûºÅ£¬ÎÒÎÊÁ˶¬¼¾£¬µÃÖªÊÇÕâ»ØÊ£¬ÓÃ[]µÄ×Ö¶ÎÃû£¬¼´±ãÊÇsql¹Ø¼ü×ÖÒ²¿ÉÒÔ×÷Ϊ×Ö¶ÎÃû£¬²»»á±¨´í¡£
SQL ServerÀïµÄ±íÖÐÌí¼ÓÒ»¸ö×ֶΣ¬È磺timeϵͳ»á×Ô¶¯¼ÓÒ»¶Ô·½À¨ºÅ¼´£º[time] ......
SqlServer µÄÐÔÄÜ±È Access Ìá¸ßµÄ²»Ö¹Ò»µãÁË¡£
²»¹ý£¬¿ÆÑ´CMSµÄÃâ·Ñ°æ´øµÄÊÇ Access Êý¾Ý¿â¡£
ÓÐûÓа취ת³É mssql µÄÄØ£¿µ±È»¿ÉÒÔ
1, mssqlÖÐн¨Ò»ÕÅ±í£¬È»ºóµ¼Èë access ÀïÃæµÄ±íºÍÊý¾Ý.
Õâ¸öÍøÉÏÓз½·¨£¬²»¶à˵ÁË¡£
2, ÐÞ¸Ä conn.asp µ½ sql server °æ±¾£¬Õâ¸öÒ²¼òµ¥¡£
3, ä¯ÀÀÊý¾Ý£¬Ö±½Ó¾Í¿ÉÒÔ¿´ ......