sqlserver 里openquery里怎么表示变量
时间: 2024-03-05 15:53:47 浏览: 166
SQLserver中的declare变量用法
在 SQL Server 的 OPENQUERY 函数中,需要使用动态 SQL 来引用变量,具体方法如下:
首先,将变量的值存储在一个临时表中。
```
DECLARE @var1 varchar(50) = 'John'
DECLARE @sql nvarchar(max) = N'SELECT ''' + @var1 + ''' AS var1 INTO #temp'
EXEC (@sql)
```
然后,使用 OPENQUERY 函数来引用临时表中的变量。
```
DECLARE @query nvarchar(max)
SET @query = N'SELECT * FROM OPENQUERY(linked_server_name, ''SELECT * FROM database_name.schema_name.table_name WHERE column_name = ''''' + @var1 + ''''''')'
EXEC (@query)
```
在上面的代码中,我们使用动态 SQL 来创建一个包含变量值的临时表。然后,我们使用 OPENQUERY 函数来引用这个临时表中的变量值,并将其用于 WHERE 子句中。
需要注意的是,这种方法需要确保变量值是安全的,以避免 SQL 注入攻击。因此,建议使用参数化查询或其他安全的方法来避免此类攻击。
阅读全文