Sql Server ´¥·¢Æ÷(¶þ)
½Ó(Ò»)
--´¥·¢Æ÷ʾÀý2
/*
´´½¨´¥·¢Æ÷[T_INSERT_¾íÑÌÏúÊÛ±í]£¬¸Ã´¥·¢Æ÷½Ï¸´ÔÓ¡£
˵Ã÷: ÿµ±[¾íÑÌ¿â´æ±í]·¢Éú INSERT ¶¯×÷£¬ÔòÒý·¢¸Ã´¥·¢Æ÷¡£
´¥·¢Æ÷¹¦ÄÜ£º ʵÏÖÒµÎñ¹æÔò¡£
ÒµÎñ¹æÔò: Èç¹ûÏúÊ۵ľíÑÌÆ·ÅƲ»´æÔÚ¿â´æ»òÕß¿â´æÎªÁ㣬Ôò·µ»Ø´íÎó¡£
·ñÔòÔò×Ô¶¯¼õÉÙ[¾íÑÌ¿â´æ±í]ÖжÔÓ¦Æ·ÅÆ¾íÑÌµÄ¿â´æÊýÁ¿ºÍ¿â´æ½ð¶î¡£
*/
IF EXISTS (SELECT NAME from SYSOBJECTS WHERE XTYPE = ’TR’ AND NAME = ’T_INSERT_¾íÑÌÏúÊÛ±í’)
DROP TRIGGER T_INSERT_¾íÑÌÏúÊÛ±í
GO
CREATE TRIGGER T_INSERT_¾íÑÌÏúÊÛ±í
ON ¾íÑÌÏúÊÛ±í
FOR INSERT
AS
BEGIN TRANSACTION
--¼ì²éÊý¾ÝµÄºÏ·¨ÐÔ£ºÏúÊ۵ľíÑÌÊÇ·ñÓÐ¿â´æ£¬»òÕß¿â´æÊÇ·ñ´óÓÚÁã
IF NOT EXISTS (
SELECT ¿â´æÊýÁ¿
from ¾íÑÌ¿â´æ±í
WHERE ¾íÑÌÆ·ÅÆ IN (SELECT ¾íÑÌÆ·ÅÆ from INSERTED)
)
BEGIN
--·µ»Ø´íÎóÌáʾ
RAISERROR(’´íÎ󣡸þíÑ̲»´æÔÚ¿â´æ£¬²»ÄÜÏúÊÛ¡£’,16,1)
--»Ø¹öÊÂÎñ
ROLLBACK
RETURN
END
IF EXISTS (
SELECT ¿â´æÊýÁ¿
from ¾íÑÌ¿â´æ±í
WHERE ¾íÑÌÆ·ÅÆ IN (SELECT ¾íÑÌÆ·ÅÆ from INSERTED) AND
¿â´æÊýÁ¿ <= 0
)
BEGIN
--·µ»Ø´íÎóÌáʾ
RAISERROR(’´íÎ󣡸þíÑÌ¿â´æÐ¡ÓÚµÈÓÚ0£¬²»ÄÜÏúÊÛ¡£’,16,1)
--»Ø¹öÊÂÎñ
ROLLBACK
RETURN
END
--¶ÔºÏ·¨µÄÊý¾Ý½øÐд¦Àí
--Ç¿ÖÆÖ´ÐÐÏÂÁÐÓï¾ä£¬±£Ö¤ÒµÎñ¹æÔò
UPDATE ¾íÑÌÏúÊÛ±í
SET ÏúÊÛ½ð¶î = ÏúÊÛÊýÁ¿ * ÏúÊÛµ¥¼Û
WHERE ¾íÑÌÆ·ÅÆ IN (SELECT ¾íÑÌÆ·ÅÆ from INSERTED)
DECLARE @¾íÑÌÆ·ÅÆ VARCHAR(40)
SET @¾íÑÌÆ·ÅÆ = (SELECT ¾íÑÌÆ·ÅÆ from INSERTED)
DECLARE @ÏúÊÛÊýÁ¿ MONEY
SET @ÏúÊÛÊýÁ¿ = (SELECT ÏúÊÛÊýÁ¿ from INSERTED)
UPDATE ¾íÑÌ¿â´æ±í
SET ¿â´æÊýÁ¿ = ¿â´æÊýÁ¿ - @ÏúÊÛÊýÁ¿,
¿â´æ½ð¶î = (¿â´æÊýÁ¿ - @ÏúÊÛÊýÁ¿)*¿â´æµ¥¼Û
WHERE ¾íÑÌÆ·ÅÆ = @¾íÑÌÆ·ÅÆ
COMMIT TRANSACTION
GO
--Çë´ó¼Ò×ÔÐиú×Ù[¾íÑÌ¿â´æ±í]ºÍ[¾íÑÌÏúÊÛ±í]µÄÊý¾Ý±ä»¯¡£
--Õë¶Ô[¾íÑÌÏúÊÛ±í]£¬²åÈëµÚÒ»Ìõ²âÊÔÊý¾Ý£¬¸ÃÊý¾ÝÊÇÕý³£µÄ¡£
INSERT INTO ¾íÑÌÏúÊÛ±í(¾íÑÌÆ·ÅÆ,¹º»õÉÌ,ÏúÊÛÊýÁ¿,ÏúÊÛµ¥¼Û,ÏúÊÛ½ð¶î)
SELECT ’ºìËþɽÐÂÊÆÁ¦’,’ij¹º»õÉÌ’,10,12,1200
GO
--Õë¶Ô[¾íÑÌÏúÊÛ±í]£¬²åÈëµÚ¶þÌõ²âÊÔÊý¾Ý£¬¸ÃÊý¾Ý ÏúÊÛ½ð¶î ²»µÈÓÚ ÏúÊÛµ¥¼Û * ÏúÊÛÊýÁ¿¡£
--´¥·¢Æ÷½«×Ô¶¯¸üÕýÊý¾Ý£¬Ê¹ ÏúÊÛ½ð¶î µÈÓÚ ÏúÊÛµ¥¼Û * ÏúÊÛÊýÁ¿¡£
INSERT INTO ¾íÑÌÏúÊÛ±í(¾íÑÌÆ·ÅÆ,¹
Ïà¹ØÎĵµ£º
--´´½¨Ò»Õűí
create table stut
(
id int,
na varchar(20)
)
--²åÈë4ÌõÊý¾Ý¡£
insert into stut values(1,'aa')
insert into stut values(2,'bb')
insert into stut values(3,'df')
insert into stut values(4,'Öйú')
select * from stut
--¸ù¾Ý'df,aa,Öйú,bb'À´½øÐÐÅÅÐò
select * from stut ......
Èç¹û½á¹ûµÄ³¤¶È´óÓÚ·þÎñÆ÷²ÎÊýmax_allowed_packet£¬×Ö·û´®Öµº¯Êý·µ»ØNULL¡£¼û10.2.3 µ÷½Ú·þÎñÆ÷²ÎÊý¡£
¶ÔÓÚÕë¶Ô×Ö·û´®Î»ÖõIJÙ×÷£¬µÚÒ»¸öλÖñ»±ê¼ÇΪ1¡£
ASCII(str)
·µ»Ø×Ö·û´®strµÄ×î×óÃæ×Ö·ûµÄASCII´úÂëÖµ¡£Èç¹ûstrÊÇ¿Õ×Ö·û´®£¬·µ»Ø0¡£Èç¹ûstrÊÇNULL£¬·µ»ØNULL¡£
mysql> select ASCII('2');
-> ......
ÔÚ½øÐвÙ×÷֮ǰ£¬½¨Ò鱸·ÝºÃ×¢²á±íÒÔ¼°ÖØÒªµÄÊý¾Ý¿âÎļþ¡£
£¨1£© ɾ³ýÒÔÏÂ×¢²á±í×ÓÏ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Microsoft SQL Server
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer
HKEY_LOCAL_MACHINE\SYSTEM\CurrentC ......
CUBE ºÍ ROLLUP Ö®¼äµÄÇø±ðÔÚÓÚ£º
CUBE Éú³ÉµÄ½á¹û¼¯ÏÔʾÁËËùÑ¡ÁÐÖÐÖµµÄËùÓÐ×éºÏµÄ¾ÛºÏ¡£
ROLLUP Éú³ÉµÄ½á¹û¼¯ÏÔʾÁËËùÑ¡ÁÐÖÐÖµµÄijһ²ã´Î½á¹¹µÄ¾ÛºÏ¡£
Àý×Ó£º
if object_id('a') is not null
drop table a
create table a
(
bm varchar(20), --±àÂë
ck varchar(2), &n ......