gpt4 book ai didi

sql - 为什么我不能动态更改数据库 SQL Server 2008

转载 作者:行者123 更新时间:2023-12-04 22:41:19 24 4
gpt4 key购买 nike

以下内容无效,我肯定遗漏了明显的内容,但如果有人能解释为什么无效,那就太好了。我需要动态更改数据库。

打印输出看起来不错,但不会更改 SQL Server 下拉列表中的数据库。

DECLARE @tempSql nvarchar(4000);
DECLARE @FinalSQL nvarchar(4000);
DECLARE @dbName varchar(100);

SET @dbName = 'Pubs';
SET @tempSql = 'SELECT DB_NAME()';

SET @FinalSQL = 'USE ' + @dbName + '; EXEC sp_executesql N''' + @tempSql + '''';
EXEC (@FinalSQL)

最佳答案

如果您可以选择 SQLCMD 模式(例如,在 SSMS 中),您可以这样做:

:setvar dbname Pubs
USE [$(dbname)]
SELECT DB_NAME()

或者,您的原始语法非常接近。试试这个:

DECLARE @db AS NVARCHAR(258);
SET @db = QUOTENAME(N'Pubs');
EXEC(N'USE ' + @db + N'; EXEC(''SELECT DB_NAME();'');');
GO

关于sql - 为什么我不能动态更改数据库 SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7937440/

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