我正在做一个关于链接服务器的项目。当我们需要传递链接服务器的名称时,我想出了这种方法:
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)我真的被困在这一点上了,我不知道如何解决它。如果你们能帮我,我会是世界上最幸福的人!或者,如果您有更好和/或更简单的方法,请告诉我!提前感谢!
发布于 2017-10-05 20:17:16
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)这对我很有效;) Kinda愚蠢地说,在这些开放查询的东西中,你需要多少“。
发布于 2017-10-05 15:59:02
看看这个。
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)https://stackoverflow.com/questions/46580369
复制相似问题