IF Not Exists(Select * From t_FieldDescription Where FFieldName ='F_SaleAmount') Begin INSERT INTO t_FieldDescription( FTableID,FFieldName ) Select FTableID,'F_SaleAmount' From t_TableDescription Where FTableName ='ICStockBillEntry' End 郭少锋创建 2023-02-09 22:34:13PHPSQL : SQL 判断更新结果SQL : SQL 判断更新结果-- 更新时,不存在记录,添加记录
UPDate ICVoucherTField Set FFieldName ='产品出库单业务金额' Where FBillType = 21 And FUserDefineField='F_SaleAmount' IF @@RowCount =0 Begin INSERT INTO ICVoucherTField( FInterID ) VALUES ( 21 ) End 郭少锋创建 2023-02-09 22:28:47SQLwindows : Win10 版本区别windows : Win10 版本区别Win10系统 business 和 consumer 区别详解:
一、两者的产品名称区别 1、Win10 business edition为批量版(也称VOL版),指市面上的win10商业版集合。 2、Win10 consumer edition则为零售版,指的是市面上的win10普通版本集合。
USE master CREATE TABLE student ( stuid INT NOT NULL PRIMARY KEY, stuname VARCHAR(50) ) CREATE TABLE score ( stuid INT NOT NULL REFERENCES student(stuid), score INT )
INSERT INTO student VALUES (101,'zhangsan') INSERT INTO student VALUES (102,'wangwu') INSERT INTO student VALUES (103,'lishi') INSERT INTO student VALUES (104,'maliu')
SET XACT_ABORT OFF BEGIN TRAN INSERT INTO score VALUES (101,90) INSERT INTO score VALUES (102,78) INSERT INTO score VALUES (107,76) -- student.stuid 不存在 107 INSERT INTO score VALUES (103,81) INSERT INTO score VALUES (104,65) COMMIT TRAN
------------------------------------------------------------------------------------------------------------------------ -- SET XACT_ABORT ON 在事务中,若出现错误,系统即默认回滚事务,但只对非自定义错误有效
SET XACT_ABORT ON BEGIN TRAN INSERT INTO score VALUES (101,90) INSERT INTO score VALUES (102,78) INSERT INTO score VALUES (107,76) INSERT INTO score VALUES (103,81) INSERT INTO score VALUES (104,65)
SET XACT_ABORT OFF BEGIN TRY BEGIN TRAN INSERT INTO score VALUES (101,90) INSERT INTO score VALUES (102,78) INSERT INTO score VALUES (107,76) INSERT INTO score VALUES (103,81) INSERT INTO score VALUES (104,65)
COMMIT TRAN PRINT '事务提交' END TRY BEGIN CATCH ROLLBACK PRINT '事务回滚'
SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() as ErrorState, ERROR_MESSAGE() as ErrorMessage; END CATCH
Create TRIGGER [dbo].[Trigger] ON [dbo].BD_Supplier AFTER INSERT --UPDATE --DELETE AS BEGIN SET NOCOUNT ON SELECT * FROM INSERTED SELECT * FROM DELETED END
-------------------------------------------------------------------- CREATE TRIGGER OrdDet_Insert ON [Order Details] FOR INSERT AS UPDATE P SET UnitsInStock = P.UnitsInStock – I.Quantity FROM Products AS P INNER JOIN Inserted AS I ON P.ProductID = I.ProductID
-------------------------------------------------------------------- CREATE TRIGGER Category_Delete ON Categories FOR DELETE AS UPDATE P SET Discontinued = 1 FROM Products AS P INNER JOIN deleted AS d ON P.CategoryID = d.CategoryID
-------------------------------------------------------------------- CREATE TRIGGER dbo.SEOrderEntry_Update ON dbo.SEOrderEntry FOR UPDATE AS IF UPDATE (FCommitQty) -- 更新的字段 BEGIN SELECT * FROM inserted SELECT * FROM deleted END GO 郭少锋编辑 2023-01-28 23:34:47创建 2023-01-28 23:23:33SQLSQL : SQL:UPDATE 带参数运算SQL : SQL:UPDATE 带参数运算 declare @fcheck_fail int declare @fsrccommitfield_prevalue decimal(28,13) declare @fsrccommitfield_endvalue decimal(28,13) declare @maxorder int
update src set @fsrccommitfield_prevalue = isnull(src.fcommitqty,0), @fsrccommitfield_endvalue = @fsrccommitfield_prevalue + dest.fqty, @maxorder = (select fvalue from t_systemprofile where fcategory='ic' and fkey='cqtylargerseqty'), @fcheck_fail = case isnull(@maxorder,0) when 1 then 0 else (case when (abs(src.fqty)>abs(@fsrccommitfield_prevalue) or abs(src.fqty)>abs(@fsrccommitfield_endvalue)) then @fcheck_fail else -1 end) end,
src.fcommitqty=@fsrccommitfield_endvalue, src.fauxcommitqty=@fsrccommitfield_endvalue/cast(t1.fcoefficient as float)
from seorderentry src inner join seorder srchead on src.finterid=srchead.finterid inner join ( select u1.fsourceinterid as fsourceinterid,u1.fsourceentryid,u1.fitemid,sum(u1.fqty) as fqty from icstockbillentry u1 where u1.finterid=1783 group by u1.fsourceinterid,u1.fsourceentryid,u1.fitemid
) dest on dest.fsourceinterid = src.finterid and dest.fitemid = src.fitemid and src.fentryid = dest.fsourceentryid
inner join t_measureunit t1 on src.funitid=t1.fitemid
if (isnull(@fcheck_fail,0)=-1) raiserror('可能的原因是: 1、所选单据已被其他单据关联 2、所选单据已被反审核 3、当前单据和所选单据的关联数量超过了所选单据的数量 4、所选单据已经关闭',18,18) else if exists ( select 1 from seorder src right join (select u1.fsourceinterid as fsourceinterid,u1.fsourceentryid,u1.fitemid,sum(u1.fqty) as fqty from icstockbillentry u1 where u1.finterid=1783 group by u1.fsourceinterid,u1.fsourceentryid,u1.fitemid) dest on dest.fsourceinterid = src.finterid where dest.fsourceinterid>0 and src.finterid is null ) raiserror('所选单据已被删除',18,18) 郭少锋创建 2023-01-28 22:52:53SQL