Sql server 2008 Openquery SQL如何检查是否存在?
我使用sqlSql server 2008 Openquery SQL如何检查是否存在?,sql-server-2008,openquery,Sql Server 2008,Openquery,我使用sqlOPENQUERY检查记录是否存在,如果不存在,则插入一条新记录 这是我到目前为止所拥有的 DECLARE @sql VARCHAR (8000) DECLARE @Id VARCHAR(20) SET @Id= '31124' SET @sql = ' SELECT * FROM OPENQUERY ( SERVERNAME, '' SELECT Name FROM table WHERE Id= ''''' + @Id + ''''' '' )'
OPENQUERY
检查记录是否存在,如果不存在,则插入一条新记录
这是我到目前为止所拥有的
DECLARE @sql VARCHAR (8000)
DECLARE @Id VARCHAR(20)
SET @Id= '31124'
SET @sql = '
SELECT * FROM OPENQUERY
(
SERVERNAME,
''
SELECT Name FROM table WHERE Id= ''''' + @Id + '''''
''
)'
EXEC (@sql)
除非您有使用
EXEC
的特定要求,否则您不需要它
DECLARE @Id VARCHAR(20)
SELECT @Id= '31124'
IF EXISTS
(
SELECT * FROM OPENQUERY
(
SERVERNAME,
'SELECT Name FROM table WHERE Id= ''' + @Id + ''''
)
)
BEGIN
UPDATE OPENQUERY
(
SERVERNAME,
'SELECT Name FROM table WHERE Id= ''' + @Id + ''''
)
SET Name = 'NewName'
ELSE
INSERT OPENQUERY
(
SERVERNAME,
'SELECT Name FROM table'
)
VALUES
(
'NewName'
)
END
DECLARE @Id VARCHAR(20)
SELECT @Id= '31124'
IF EXISTS
(
SELECT * FROM OPENQUERY
(
SERVERNAME,
'SELECT Name FROM table WHERE Id= ''' + @Id + ''''
)
)
BEGIN
UPDATE OPENQUERY
(
SERVERNAME,
'SELECT Name FROM table WHERE Id= ''' + @Id + ''''
)
SET Name = 'NewName'
ELSE
INSERT OPENQUERY
(
SERVERNAME,
'SELECT Name FROM table'
)
VALUES
(
'NewName'
)
END