gpt4 book ai didi

sql - SQL 查询中的参数化表名

转载 作者:行者123 更新时间:2023-12-04 06:15:01 24 4
gpt4 key购买 nike

我正在使用 Vb2005 访问 SQL 服务器。我有一个非常复杂的查询,它访问服务器上结构相同的数据库。我正在研究参数化 FROM 子句,但似乎无法做到。这是我正在尝试的

    Dim sql As String = "SELECT * " & _
"FROM [@DB].[dbo].[Trips] AS T " & _
"WHERE T.DepartTime >= CONVERT(DATETIME, 'Sep 08, 2011', 120);"

Dim cmd As New System.Data.SqlClient.SqlCommand(sql, conn)
cmd.Parameters.Add("@DB", SqlDbType.Char)
cmd.Parameters("@DB").Value = "DriverDb"

根据用户的需要,我将访问“DriverDb”或“MaintDb”或“DispDb”数据库。 SQL 字符串实际上比在大约 5 个地方对 db 的引用复杂得多,所以想简化它,以便我可以用参数替换。

最佳答案

我想我们不能对可能不被视为参数的数据库名称或表名称执行此操作。我的建议是使用变量“db”并将其附加到字符串“sql”中,如下所示

Dim db As String = "DriverDb";
Dim sql As String = "SELECT * " & _
"FROM ["& db &"].[dbo].[Trips] AS T " & _
"WHERE T.DepartTime >= CONVERT(DATETIME, 'Sep 08, 2011', 120);"

希望这可以帮助!!

关于sql - SQL 查询中的参数化表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364708/

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