我有以下代码在TSQL中运行良好:
BEGIN
IF NOT EXISTS (select * from tblDCUSTOM where id = 'All Customers')
BEGIN
INSERT INTO tblDCUSTOM
(ID
,Name
,English
)
SELECT 'All Customers','All Customers','All Customers'
END
END
现在,我需要在使用SQL-92的自定义环境中拥有此功能,因此不可能有EXISTS(编辑:不正确,EXISTS在SQL-92中工作(或BEGIN-END。有什么想法吗?
根据第一条注释;
INSERT INTO tblDCUSTOM
(ID
,Name
,English
)
SELECT 'All Customers','All Customers','All Customers'
WHERE (SELECT COUNT(*) FROM tblDCUSTOM where id = 'All Customers') >= 1
如果支持TOP,这可能是更好的
INSERT INTO tblDCUSTOM
(ID
,Name
,English
)
SELECT 'All Customers','All Customers','All Customers'
WHERE (SELECT TOP 1 1 as F FROM tblDCUSTOM where id = 'All Customers') IS NOT NULL
我必须警告你,许多人试图建立一个"数据库不可知"的系统。这不值得。
这是正确的答案,实际上支持EXISTS
语句:
将条件放入WHERE:INSERT。。。选择。。。其中不存在(…(。这可以说是更好的做法,即使在T-SQL中原子操作。