从开放查询中删除
DELETE FROM Openquery
我正在做一个关于链接服务器的项目。因为我们需要传递链接服务器的名称,所以我想到了这种方法:
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000);
DECLARE @name nvarchar(10) = 'Y4081';
SET @LinkedServer = 'linkedserver'
SET @OPENQUERY = 'DELETE FROM OPENQUERY('+ @LinkedServer +', '''
SET @TSQL = 'SELECT * FROM [MyDataBase].[dbo].[MyTable] WHERE Name = ''Y4081'' '')'
EXEC(@OPENQUERY+@TSQL)
但是我收到以下错误:
'Y4081'.
附近的语法错误
我尝试这样做时遇到同样的错误:
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000);
DECLARE @name nvarchar(10) = 'Y4081';
SET @LinkedServer = 'linkedserver'
SET @OPENQUERY = 'DELETE FROM OPENQUERY('+ @LinkedServer +', '''
SET @TSQL = 'SELECT * FROM [MyDataBase].[dbo].[MyTable] WHERE Name = ''' + @name + ''' '')'
EXEC(@OPENQUERY+@TSQL)
我真的卡在这一点上了,不知道怎么解决。如果你们能帮助我,我将成为最幸福的人!或者,如果您有更好的 and/or 更简单的方法,请告诉我!
提前致谢!
检查这个。
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000);
DECLARE @name nvarchar(10) = 'Y4081';
SET @LinkedServer = 'linkedserver'
SET @OPENQUERY = 'DELETE FROM OPENQUERY('+ @LinkedServer +', '''
SET @TSQL = 'SELECT * FROM [MyDataBase].[dbo].[MyTable]
WHERE Name = '+@name+' '')'
EXEC(@OPENQUERY+@TSQL)
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000);
DECLARE @linkedserver nvarchar(100);
DECLARE @name nvarchar(10) = 'Y4081';
SET @linkedserver = 'linkedserver';
SET @OPENQUERY = 'DELETE FROM OPENQUERY('+ @linkedserver +','''
SET @TSQL = 'SELECT * FROM [MyDataBase].[dbo].[MyTable] WHERE Name = ''''' + @name + ''''' '')'
EXEC(@OPENQUERY+@TSQL)
这对我有用 ;) 在这些 openquery 中你需要多少 '''''' 有点傻。
我正在做一个关于链接服务器的项目。因为我们需要传递链接服务器的名称,所以我想到了这种方法:
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000);
DECLARE @name nvarchar(10) = 'Y4081';
SET @LinkedServer = 'linkedserver'
SET @OPENQUERY = 'DELETE FROM OPENQUERY('+ @LinkedServer +', '''
SET @TSQL = 'SELECT * FROM [MyDataBase].[dbo].[MyTable] WHERE Name = ''Y4081'' '')'
EXEC(@OPENQUERY+@TSQL)
但是我收到以下错误: 'Y4081'.
附近的语法错误我尝试这样做时遇到同样的错误:
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000);
DECLARE @name nvarchar(10) = 'Y4081';
SET @LinkedServer = 'linkedserver'
SET @OPENQUERY = 'DELETE FROM OPENQUERY('+ @LinkedServer +', '''
SET @TSQL = 'SELECT * FROM [MyDataBase].[dbo].[MyTable] WHERE Name = ''' + @name + ''' '')'
EXEC(@OPENQUERY+@TSQL)
我真的卡在这一点上了,不知道怎么解决。如果你们能帮助我,我将成为最幸福的人!或者,如果您有更好的 and/or 更简单的方法,请告诉我! 提前致谢!
检查这个。
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000);
DECLARE @name nvarchar(10) = 'Y4081';
SET @LinkedServer = 'linkedserver'
SET @OPENQUERY = 'DELETE FROM OPENQUERY('+ @LinkedServer +', '''
SET @TSQL = 'SELECT * FROM [MyDataBase].[dbo].[MyTable]
WHERE Name = '+@name+' '')'
EXEC(@OPENQUERY+@TSQL)
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000);
DECLARE @linkedserver nvarchar(100);
DECLARE @name nvarchar(10) = 'Y4081';
SET @linkedserver = 'linkedserver';
SET @OPENQUERY = 'DELETE FROM OPENQUERY('+ @linkedserver +','''
SET @TSQL = 'SELECT * FROM [MyDataBase].[dbo].[MyTable] WHERE Name = ''''' + @name + ''''' '')'
EXEC(@OPENQUERY+@TSQL)
这对我有用 ;) 在这些 openquery 中你需要多少 '''''' 有点傻。