Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 分配动态表名和链接服务器名_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 分配动态表名和链接服务器名

Sql 分配动态表名和链接服务器名,sql,sql-server,tsql,Sql,Sql Server,Tsql,是否有任何方法可以动态更改指定的表名以及指定的LinkedServer名称,而不会导致远程Oracle SQL字符串(>8000个字符)被引用为标量变量,从而导致脚本中断 INSERT INTO dbo.Table_1 EXEC ( @mySQL ) AT Linked_Server_1 您可以使整个语句动态化,如: DECLARE @s varchar(max) SET @s = 'INSERT INTO dbo.Table_1 EXEC ( ''' + @mySQL + ''' ) AT

是否有任何方法可以动态更改指定的表名以及指定的LinkedServer名称,而不会导致远程Oracle SQL字符串(>8000个字符)被引用为标量变量,从而导致脚本中断

INSERT INTO dbo.Table_1 EXEC ( @mySQL ) AT Linked_Server_1

您可以使整个语句动态化,如:

DECLARE @s varchar(max)
SET @s = 'INSERT INTO dbo.Table_1 EXEC ( ''' + @mySQL + ''' ) AT Linked_Server_1'
EXEC( @s )
您可能需要转义@mySQL变量中的任何撇号。这有点疯狂:

DECLARE @s varchar(max)
SET @s = 'INSERT INTO dbo.Table_1 EXEC ( ''' + replace(@mySQL, '''', '''''') + ''' ) AT Linked_Server_1'
EXEC( @s )

当我分别对表名和linkedserver名进行硬编码时,效果很好。我的问题是我需要它来接受这两个方面的动态值。非常感谢,加上撇号转义就像一个符咒:)