Hiển thị kết quả từ 1 đến 5 / 5
  1. #1
    Tham gia
    26-10-2010
    Bài viết
    80
    Like
    0
    Thanked 1 Time in 1 Post

    help me hàm viết trigger trong sql

    Ai rành về trigger giúp mình với.

    Trong sql mình có 1 table, gồm table1 và table2, mình muốn viết trigger cho table1, khi dữ liệu được insert vào table1 thì nó sẽ có trong table2

    Trigger của mình như sau:

    ALTER trigger insert_banggia
    on TB_GIA1
    for insert as
    begin
    -- Khai báo các biến
    DECLARE @id int, @iks int, @gia money, @ngoaite varchar(10), @sao int
    --Khai báo bảng tạm
    if @@ROWCOUNT >= 1
    BEGIN
    DECLARE @Count int
    DECLARE @Table_Tam TABLE
    (
    id [int] IDENTITY (1, 1) NOT NULL,
    iks int null,
    gia money null,
    ngoaite varchar(10) null,
    sao int null

    )
    -- Thêm toàn bộ dữ liệu được insert vào bảng tạm
    INSERT INTO @Table_tam(id, iks ,gia,ngoaite,sao)
    SELECT gia, iks, ngoaite, sao FROM inserted
    -- Khai báo các biến
    DECLARE @CurrentRow int
    DECLARE @MaxRow int
    -- Dùng vòng lặp duyệt tất cả d
    SELECT @MaxRow = isnull(Max([id]),0) FROM @Table_tam
    SET @CurrentRow = 1
    WHILE @CurrentRow <=@MaxRow
    BEGIN
    SELECT
    @id=tam.id,
    @iks=tam.iks,
    @gia=tam.gia,
    @ngoaite=tam.ngoaite,
    @sao=tam.sao,

    FROM @Table_tam tam
    WHERE [id] = @CurrentRow
    // mình muốn kiểm tra
    // nếu sao =3 ( nếu ngoaite=usd thì lấy gia*21000 + 2000, nếu ngoaite=vnd thì lấy gia +2000)
    // nếu sao =4 ( nếu ngoaite=usd thì lấy gia*21000 + 3000, nếu ngoaite=vnd thì lấy gia +3000)
    // nếu sao =5 ( nếu ngoaite=usd thì lấy gia*21000 + 4000, nếu ngoaite=vnd thì lấy gia +4000)

    //code giúp mình chổ này với

    -- Kiểm tra bảng TB_gia2 có dữ liệu chưa nếu chưa có thì thêm mới
    SELECT @Count=Count(*) FROM Tb_gia2 WHERE iks=@iks
    IF @Count=0
    BEGIN
    INSERT INTO Tb_gia2(iks,gia,ngoaite,sao)
    VALUES(@iks,@gia,ngoaite,@sao)
    END
    SET @CurrentRow = @CurrentRow + 1

    END

    end
    end


    mình muốn code kiểm tra

    // mình muốn kiểm tra
    // nếu sao =3 ( nếu ngoaite=usd thì lấy gia*21000 + 2000, nếu ngoaite=vnd thì lấy gia +2000)
    // nếu sao =4 ( nếu ngoaite=usd thì lấy gia*21000 + 3000, nếu ngoaite=vnd thì lấy gia +3000)
    // nếu sao =5 ( nếu ngoaite=usd thì lấy gia*21000 + 4000, nếu ngoaite=vnd thì lấy gia +4000)

    //code giúp mình chổ này với

    ai biết giúp mình với nha.

    Thanks
    Quote Quote

  2. #2
    Tham gia
    13-10-2010
    Bài viết
    37
    Like
    0
    Thanked 4 Times in 3 Posts
    Mình có cái ví dụ này bạn xem thử nhe , ở đây mình dùng viết trigger gọi stored procedure .
    Mình tạo 2 table có cùng cấu trúc :
    Table test
    Code:
    CREATE TABLE [dbo].[test](
    	[id] [int] NULL,
    	[name] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    	[descs] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    ) ON [PRIMARY]
    Table test2
    Code:
    CREATE TABLE [dbo].[test](
    	[id] [int] NULL,
    	[name] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    	[descs] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    ) ON [PRIMARY]
    Trigger
    Code:
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    GO
    ALTER TRIGGER [dbo].[hello] ON [dbo].[test] FOR INSERT 
    AS
    DECLARE @id int ,
    @name nvarchar(50),
    @desc nvarchar(50)
    SELECT @id=id , @name=name , @desc=descs FROM INSERTED
    IF @id=1
    BEGIN
    	SET @id=@id+100
    	EXEC sp_test2 @id ,@name ,@desc 
    END
    ELSE IF @id=2
    BEGIN
    	SET @id=@id+200
    	EXEC sp_test2 @id ,@name ,@desc 
    END
    ELSE	
    BEGIN
    	SET @id=@id+300
    	EXEC sp_test2 @id ,@name ,@desc 
    END
    Stored procedure
    Code:
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    GO
    ALTER PROC [dbo].[sp_test2] 
    @id int ,
    @name nvarchar(50),
    @desc nvarchar(50)
    AS 
    INSERT INTO test2 VALUES(@id ,@name, @desc)
    Bạn hãy insert dữ liệu vào bảng test sau đó select dữ liệu từ bảng test2 xem thử , chúc bạn thành công !

  3. #3
    Tham gia
    24-11-2011
    Location
    http://hmclip.vn
    Bài viết
    118
    Like
    10
    Thanked 12 Times in 11 Posts
    Bạn thử tham khảo bài viết http://hmclip.net/Chia-Se-La-Niem-Vu...-hang-loat.htm xem giúp được bạn không nhé.

    Chúc thành công

  4. #4
    Tham gia
    28-09-2011
    Bài viết
    26
    Like
    10
    Thanked 1 Time in 1 Post
    Cho em hỏi tí về background trong ASP.NET.
    Em thiết kê trang web, khi em chọn 1 div chẳng hạn, bên mục properties của div này em chọn style->background sau đó em đưa vào 1 hình ảnh design thì hiển thị bình thường nhưng chạy thì lại không có gì, nhưng chọn màu thì chạy nó hiển thị .. bạn nào biết chỉ giùm em cách sữa lỗi này.

  5. #5
    Tham gia
    12-08-2011
    Bài viết
    23
    Like
    11
    Thanked 2 Times in 2 Posts
    Quote Được gửi bởi huyenmeocon View Post
    Cho em hỏi tí về background trong ASP.NET.
    Em thiết kê trang web, khi em chọn 1 div chẳng hạn, bên mục properties của div này em chọn style->background sau đó em đưa vào 1 hình ảnh design thì hiển thị bình thường nhưng chạy thì lại không có gì, nhưng chọn màu thì chạy nó hiển thị .. bạn nào biết chỉ giùm em cách sữa lỗi này.
    Tạo 1 cái css rồi add vào div

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •