Ҫȷ¶¨ËùÔËÐÐµÄ SQL Server 2005 µÄ°æ±¾£¬ÇëʹÓà SQL Server Management Studio Á¬½Óµ½ SQL Server 2005£¬È»ºóÔËÐÐÒÔÏ Transact-SQL Óï¾ä£º
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
½á¹û£º
RTM 2005.90.1399
SQL Server 2005 Service Pack 1 2005.90.2047
SQL Server 2005 Service Pack 2 2005.90.3042
Ҫȷ¶¨ËùÔËÐÐµÄ SQL Server 2000 µÄ°æ±¾£¬ÇëʹÓòéѯ·ÖÎöÆ÷Á¬½Óµ½ SQL Server 2000£¬È»ºóÔËÐÐÏÂÁдúÂ룺
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
½á¹û£º
RTM 2000.80.194.0
SQL Server 2000 SP1 2000.80.384.0
SQL Server 2000 SP2 2000.80.534.0
SQL Server 2000 SP3 2000.80.760.0
SQL Server 2000 SP3a 2000.80.760.0
SQL Server 2000 SP4 2000.8.00.2039 ......
Èí¼þ £º Sql Server 2005
ÕâÀï²¢²»ÊÇSQLÓï·¨´óÈ«£¬ÒÔÏÂÊdz£ÓõÄÓï¾ä£¬¶Ô£¨Êý¾Ý¿â¡¢±í¡¢×ֶΡ¢Êý¾Ý£©µÄÔöɾ¸Ä²é£¬Èç¹ûÐèÒªÏêÏ¸È«ÃæµÄTransact-SQLÓï¾ä£¬¿ÉÒÔ²éSql ServerÁª»ú´ÔÊ飬ÄÇÀïÊÇ×îÈ«µÄ×ÊÁÏ£¬Ò»°ã°²×°Sql Server¶¼»áĬÈϰ²×°¡£
´ò¿ªSql ServerÁª»ú´ÔÊé
¿ªÊ¼ à ³ÌÐò à Microsoft SQL Server 2005 à ÎĵµÓë½Ì³Ì à Sql ServerÁª»ú´ÔÊé
´ò¿ªTransact – SQL²Î¿¼
Sql Server 2005 Áª»ú´ÔÊé à Sql Server ÓïÑԲο¼ à Transact – SQL²Î¿¼
Êý¾Ý¿â
´´½¨
create database TestDB
ÐÞ¸Ä
ALTER DATABASE TestDB MODIFY NAME = TestDataBase /* ÉÙʹÓÃ*/
²éѯËùÓÐ
SELECT Name from Master..SysDatabases ORDER BY Name /* Ò»°ãºÜÉÙʹÓÃ*/
ɾ³ý
drop database TestDB
±í
´´½¨
Create table house(
Rates int,
Grow int,
Place varchar(10),
Year int
)
²éѯËùÓÐ
SELECT Name from SysObjects Where ......
Ò»¡¢ SQLCLRȨÏÞ¼¯¼¶±ð
¡¡¡¡µ±ÄãʹÓÃCREATE ASSEMBLYÓï¾ä°ÑÒ»¸ö³ÌÐò¼¯¼ÓÔØµ½Ò»¸öÊý¾Ý¿âÖÐʱ£¬SQL ServerÌṩÁËÈýÖÖȨÏÞ¼¯¼¶±ð£ºSAFE£¬EXTERNAL_ACCESSºÍUNSAFE¡£ÕâЩȨÏÞ¼¯ÐγÉÈçͼ3ºÍͼ5£¨¾ùÇë²Î¿¼µÚ¶þƪ£©ËùʾµÄ AppDomain²ßÂÔ¼¶±ð¡£
¡¡¡¡ÏÂÃæÊÇÒ»¸öµäÐ͵ÄÓï¾ä£¬ËüʵÏÖ°²×°Î»ÓÚFileLoader.dllÎļþÄÚµÄÒ»¸ö³ÌÐò¼¯£¬²¢ÇÒ¸³ÓèËüEXTERNAL_ACCESSȨÏÞ¼¯¡£
CREATE ASSEMBLY FileAccess
from 'E:FileLoader.dll'
WITH PERMISSION_SET = EXTERNAL_ACCESS
GO
¡¡¡¡ÔÚ´úÂëÖ´ÐÐʱ£¬Ã¿Ò»ÖÖȨÏÞ¼¯¼¶±ð¶¼ÊÚÓè¸Ã´úÂëÒ»×鲻ͬµÄCASÐí¿ÉȨ¼¯¡£ÏÂÃæÈÃÎÒÃÇ¿ªÊ¼ÌÖÂÛÔÚÿһ¼¶ÉÏÊÚÓèµÄÌØ¶¨Ðí¿ÉȨ¡£
¡¡¡¡(1) SAFE
¡¡¡¡SAFEÊÇĬÈϵÄȨÏÞ¼¯¡£Ëü½öÊÚÓè×ã¹»µÄÐí¿ÉȨÀ´Ö´ÐдúÂ룬ʵÏÖ²»ÒªÇó´æÈ¡Íⲿ×ÊÔ´µÄÄÚ²¿¼ÆËãÒÔ¼°´æÈ¡ÔÚËÞÖ÷SQL ServerʵÀýÖеÄÊý¾ÝºÍ¶ÔÏó¡£×¢Ò⣬SAFE´úÂë²»ÄÜ´æÈ¡ÍⲿµÄ×ÊÔ´£¬Òò´ËËü²»ÄܶÁÈ¡»òд´ÅÅÌÎļþ£¬²»ÄÜ´æÈ¡ÈÎºÎÆäËüSQL ServerʵÀý£¬»ò¶ÁÈ¡»òдע²á±í¡£¶øÇÒ£¬¸Ã´úÂëÒ²±ØÐë±»¼ìÑéΪÀàÐͰ²È«µÄ£¬Õ⽫ÓÐÖúÓÚ±ÜÃâ¸÷ÖÖ°üÀ¨»º³åÇøÒç³öÔÚÄڵĹ¥»÷¡£
¡¡¡¡SAFE´úÂëÊǸü¿É¿¿ºÍ°²È«µÄSQLCLR´úÂë¡£ËüÄܹ»ÊµÏ ......
ÔÚʹÓÃCLR´æ´¢¹ý³ÌÖÐÓöµ½µÄһЩÎÊÌ⣬ÔÚÕâÀï½øÐмǼ£º
´ò¿ªCLRµÄÖ§³Ö
--ÔÚSql ServerÖÐÖ´ÐÐÕâ¶Î´úÂë¿ÉÒÔ¿ªÆôCLR
exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
exec sp_configure 'show advanced options', '1';
go
Èç¹ûÐèÒª·ÃÎÊÍⲿ×ÊÔ´µÄ»°£¬»áÓдò¿ªTRUSTWORTHY ÊôÐÔµÄÌáʾ
--´ò¿ªÊý¾Ý¿âµÄTRUSTWORTHY ÊôÐÔ
ALTER DATABASE DB_Name set TRUSTWORTHY on;
ͨ¹ýÉÏÊöµÄÉèÖã¬Ó¦¸ÃÄÜÇáÒ׵ؼÓÈë³ÌÐò¼¯ÁË
Õâ¸ö¿ÉÒÔÓÃÊó±êÍê³É¾Í²»Ìù´úÂëÁË
×îºó£¬ÊÖ¶¯Ìí¼Ó´æ´¢¹ý³Ì
--Ìí¼Ó´æ´¢¹ý³Ì
CREATE PROCEDURE [dbo].[´æ´¢¹ý³ÌÃû³Æ]
@from [nvarchar](50), -- ²ÎÊýÁбí
@to [nvarchar](50)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [³ÌÐò¼¯µÄÃû³Æ].[StoredProcedures].[´æ´¢¹ý³ÌÃû³Æ]
OK£¬Íê³ÉÁË£¬Ï£Íû¶ÔÄãÓÐËù°ïÖú¡£ ......
ÒÔÏÂÊÇÒ»¸ö²éѯIPµØÖ·¹éÊôµØµÄCLR´æ´¢¹ý³Ì£¬Èý²½£º
1¡¢ÓÃC#À´×öDLL£¬´úÂëÈçÏ£º
//====================================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;
public class AddrInfo
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void getAddrInfo(SqlString ip, out SqlString info)
{
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
//IPµØÖ·×ªÎªÊý×Ö
string[] tmp = ip.Value.Split(new string[]{"."},StringSplitOptions.None);
Int64 ipn = ToInt(ToBin ......
ÒÔÏÂÊÇÒ»¸ö²éѯIPµØÖ·¹éÊôµØµÄCLR´æ´¢¹ý³Ì£¬Èý²½£º
1¡¢ÓÃC#À´×öDLL£¬´úÂëÈçÏ£º
//====================================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;
public class AddrInfo
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void getAddrInfo(SqlString ip, out SqlString info)
{
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
//IPµØÖ·×ªÎªÊý×Ö
string[] tmp = ip.Value.Split(new string[]{"."},StringSplitOptions.None);
Int64 ipn = ToInt(ToBin ......
ÓÃSQLÃüÁî²éѯÊÓͼ¶¨ÒåÓï¾ä£¬¿ÉÒÔÓÃÒÔÏÂÁ½ÖÖ·½·¨£º
sp_helptext 'ÊÓͼÃû' --¶àÐÐÏÔʾ
SELECT text from sysobjects so INNER JOIN syscomments sc ON so.id=sc.id WHERE so.id=OBJECT_ID('ÊÓͼÃû')--µ¥ÐÐÏÔʾ
......