有一個字符串超長 把要insert表的那個字段加長

解决方案 »

  1.   

    CREATE TABLE [dbo].[test] ( 
    [id] [int] NOT NULL , 
    [name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL 
    ) ON [PRIMARY] 
    GO CREATE TABLE [dbo].[testerror] ( 
    [id] [int] IDENTITY (1, 1) NOT NULL , 
    [currentdate] [datetime] NULL , 
    [hostname] [varchar] (128) COLLATE Chinese_PRC_CI_AS NULL , 
    [loginame] [varchar] (128) COLLATE Chinese_PRC_CI_AS NULL , 
    [message] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY] 
    GO ALTER TABLE [dbo].[test] WITH NOCHECK ADD 
    CONSTRAINT [pk_test] PRIMARY KEY CLUSTERED 

    [id] 
    ) ON [PRIMARY] 
    GO ALTER TABLE [dbo].[testerror] WITH NOCHECK ADD 
    CONSTRAINT [pk_testerror] PRIMARY KEY CLUSTERED 

    [id] 
    ) ON [PRIMARY] 
    GO 
    CREATE TRIGGER tr_test ON dbo.test 
    FOR UPDATE 
    AS 
    DECLARE @name VARCHAR(40),@name_d VARCHAR(40),@msg varchar(8000) SELECT @name = ISNULL(name,'') FROM INSERTED 
    SELECT @name_d = ISNULL(name,'') FROM DELETED 
    IF UPDATE(ID) OR UPDATE(name) IF (LTRIM(RTRIM(@name)) <> LTRIM(RTRIM(@name_d))) 
    BEGIN 
    rollback transaction BEGIN TRANSACTION t2 INSERT dbo.testerror (currentdate,hostname,loginame,message) SELECT getdate (),'11','11',@msg COMMIT TRANSACTION t2 select @msg = 'KK' RAISERROR( @msg,16,1) END GO 
    INSERT test VALUES (1,1) GO 
    --UPDATE test SET name = 'a' WHERE id = 1 
    --GO
      

  2.   

    为什么不插入表testerror 
    请高手指教