gpt4 book ai didi

sql - 在 SQL 语句中使用参数值

转载 作者:行者123 更新时间:2023-12-04 23:03:55 25 4
gpt4 key购买 nike

我正在尝试编写一个数据库脚本 (SQL Server 2008),它将信息从一台服务器上的数据库表复制到另一台服务器上另一个数据库中的相应表。

我已经读过,正确的方法是使用类似于以下格式的 sql 语句:

INSERT INTO <linked_server>.<database>.<owner>.<table_name> SELECT * FROM <linked_server>.<database>.<owner>.<table_name>

由于将复制多个表,我想在脚本顶部声明变量以允许用户指定要使用的每个服务器和数据库的名称。然后可以在整个脚本中使用这些。但是,我不确定如何在实际 SQL 语句中使用变量值。我想要实现的目标如下:

DECLARE @SERVER_FROM AS NVARCHAR(50) = 'ServerFrom'
DECLARE @DATABASE_FROM AS NVARCHAR(50) = 'DatabaseTo'

DECLARE @SERVER_TO AS NVARCHAR(50) = 'ServerTo'
DECLARE @DATABASE_TO AS NVARCHAR(50) = 'DatabaseTo'

INSERT INTO @SERVER_TO.@DATABASE_TO.dbo.TableName SELECT * FROM @SERVER_FROM.@DATABASE_FROM.dbo.TableName
...

我应该如何在此代码中使用 @ 变量才能使其正常工作?

另外,您认为我上面的方法对于我想要实现的目标是否正确,我应该使用 NVARCHAR(50) 作为我的变量类型还是其他类型?

谢谢

最佳答案

可能有更好的方法来执行此操作,但您可能在示例中尝试做的是所谓的动态 SQL,您将语句视为字符串并执行它。这将是此处的第 2 节: http://www.mssqltips.com/tip.asp?tip=1160

动态 SQL 有一些主要缺点。您会在那篇文章中看到其他一些可能更好的方法。

关于sql - 在 SQL 语句中使用参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com