SQL ServerÁ¬½ÓÔ¶³ÌÊý¾ÝÔ´µÄ»ù±¾·½·¨
SQL ServerÁ¬½ÓÔ¶³ÌÊý¾ÝÔ´µÄ»ù±¾·½·¨ÓÐÏÂÃæÈýÖÖ£º
OPENDATASOURCE: The OPENDATASOURCE function is used to specify connection information for a remote data source by specifying the OLE DB provider and an initialization string. OPENDATASOURCE can be used directly within a SELECT, INSERT, UPDATE, or DELETE statement.
OPENROWSET: The OPENROWSET function is used to specify connection information for a remote data source and the name of an object that will return a result set (such as a stored procedure) or a query that will return a result set. Like OPENDATASOURCE, OPENROWSET can be used directly within a SELECT, INSERT, UPDATE, or DELETE statement.
Linked servers: A linked server is an object within SQL Server that defines the connection properties of another SQL Server. When defined, queries can connect to the remote server using a four-part name, such as
SQLSrv1.AdventureWorks.person.Contact
The four-part name identifies the server (SQLSrv1), the database (AdventureWorks), the schema (Person), and the object (Contact table). Linked servers are explored in more depth in the final section of this chapter.
ÆäÖÐOPENDATASOURCEºÍOPENROWSET·½·¨Ò»°ãÓÃÀ´×öÁÙʱ²éѯ£¨ad hoc query£©£¬Èç¹ûÐèÒª¾³£µÄ²éѯԶ³ÌÊý¾Ý£¬Ôò½¨Òé´´½¨linked servers¡£µ«ÊÇ£¬Ä¬ÈÏÇé¿öad hoc query ÊǽûÓõģ¬ÐèÒªÊÖ¶¯Æô¶¯£º
sp_configure ‘show advanced options’, 1;
GO
RECONFIGURE;
GO
sp_configure ‘Ad hoc Distributed Queries’, 1;
GO
RECONFIGURE;
===========================
³£ÓÃÓï¾ä£º
SELECT a.*
from OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'd:\aaa.xls';'admin';'', data)
AS a
ÒÔÏÂÓï¾äÄܳɹ¦,ÉÏÒ»ÌìÓï¾äÈ´²»ÐÐ:OLE DB Ìṩ³ÌÐò 'Microsoft.Jet.OLEDB.4.0' ±¨´í¡£
[OLE/DB provider returned message: ²»¿Éʶ±ðµÄÊý¾Ý¿â¸ñʽ 'd:\aaa.xls'¡£]
SELECT *
from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="d:\aaa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...data$
SELECT *
from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'D
Ïà¹ØÎĵµ£º
ÔÚSQL Server 2005Êý¾Ý¿âÖÐʵÏÖ×Ô¶¯±¸·ÝµÄ¾ßÌå²½Öè:
1¡¢´ò¿ªSQL Server Management Studio
2¡¢Æô¶¯SQL Server´úÀí
3¡¢µã»÷×÷Òµ->н¨×÷Òµ
4¡¢"³£¹æ"ÖÐÊäÈë×÷ÒµµÄÃû³Æ
5¡¢Ð½¨²½Ö裬ÀàÐÍÑ¡T-SQL£¬ÔÚÏÂÃæµÄÃüÁîÖÐÊäÈëÏÂÃæÓï¾ä£¨ºìÉ«²¿·ÖÒª¸ù¾Ý×Ô¼ºµÄʵ¼ÊÇé¿ö¸ü¸Ä£¬'D:\LMS2.0\LMS2.0\bak\' ¸ÄΪ×Ô¼ºµÄ±¸·Ý·¾¶£¬ ......
ORACLE SQLÐÔÄÜÓÅ»¯
ÎÒÒª½²µÄÌâÄ¿ÊÇOracle SQLÐÔÄÜÓÅ»¯£¬Ö»ÊÇOracleÐÔÄÜÓÅ»¯ÖеÄÒ»Ïî¡£OracleµÄÐÔÄÜÓÅ»¯°üº¬ºÜ¶à·½Ã棬±ÈÈçµ÷ÕûÎïÀí´æÈ¡£¬µ÷ÕûÂß¼´æÈ¡£¬µ÷ÕûÄÚ´æÊ¹Ó㬼õÉÙÍøÂçÁ÷Á¿µÈ¡£ÕâÀïÑ¡ÔñSQLÐÔÄÜÓÅ»¯ÊÇÒòΪÕⲿ·ÖÄÚÈÝÎÒÃDzâÊÔÈËÔ±×îÈÝÒ×½Ó´¥µ½£¬ÁíÍ⿪·¢ÈËԱдSQL½Å±¾Ê±ÓÐʱºÜËæÒ⣬²»Öª²»¾õ¾Í»áÔì³É³ÌÐòÐÔÄÜÉϵÄÏ ......
·Ï»°²»¶à˵,ÉÏ´úÂë
SELECT k
from (
SELECT 'shanghai' AS k from DUAL
UNION ALL
SELECT 'dalian' AS k from DUAL
UNION ALL
SELECT 'beijing' AS k from DUAL
)
ORDER BY CASE
WHEN k = 'beijing'
......
ºÜ¶àʱºò£¬ÎÒÃÇÐèÒª°ÑÊý¾Ý¿âSequenceÉèÖõ½Ä³¸öÌØ¶¨µÄÖµ¿ªÊ¼£¬µ«ÊÇÓÖ²»ÏëÖØ½¨Õâ¸öSequence ÄÇÏÂÃæµÄSQLÓï¾ä¾Í¿ÉÒÔʵÏÖÕâÑùµÄ¹¦ÄÜ£º ÆäÖÐuser_seqÊÇÐèÒª²Ù×÷µÄSequenceÃû³Æ£¬1 .. 100ÊǵÝÔö100´Î DECLARE
rowCount1 NUMBER;
BEGIN
FOR cc IN 1 .. 100
LOOP
SELECT user_seq.NEXTVAL INTO rowCount1 f ......
Çë°´²½Öè½øÐУ¬Î´½øÐÐÇ°ÃæµÄ²½Öèʱ£¬Çë²»Òª×öºóÃæµÄ²½Ö裬ÒÔÃâËð»µÄãµÄÊý¾Ý¿â¡£
Ò»°ã²»½¨Òé×öµÚ4£¬6Á½²½£¬µÚ4²½²»°²È«£¬ÓпÉÄÜËð»µÊý¾Ý¿â»ò¶ªÊ§Êý¾Ý¡£µÚ6²½Èç¹ûÈÕÖ¾´ïµ½ÉÏÏÞ£¬ÔòÒÔºóµÄÊý¾Ý¿â´¦Àí»áʧ°Ü£¬ÔÚÇåÀíÈÕÖ¾ºó²ÅÄָܻ´¡£
1¡¢Çå¿ÕÈÕÖ¾
DUMP TRANSACTION ¿âÃû WITH NO_LOG
2¡¢½Ø¶ÏÊÂÎñÈÕÖ¾
B ......