我有一个简单的要求,我需要用另一个表的数据库名称替换变量。
我有一个名为config setting的表
键值
ClubcardDB ClubardDetailsDB
代码
from nltk.tokenize import word_tokenize
df = pd.DataFrame({'A': ["potato soup, 99", "2 tomato"]})
# Tokenise
df['B'] = df['A'] .apply(word_tokenize)
# Words only
def Words(Token):
if Token .isalpha():
return Token
df['C'] = df['B'] .apply(Words)
出现错误: 无效的对象名称'@ Value.dbo.ClubcardDetails'。
我不想构建和动态查询。
答案 0 :(得分:0)
这是我在计算机上制作的一个有效示例:
Declare @Value varchar(100)='Test'
DECLARE @SQL NVARCHAR(MAX)
SET @SQL='Select * from ' + QUOTENAME(@Value) + '.[sys].[all_columns];'
EXECUTE sp_executesql @SQL
一种更安全的方法,它验证值实际上是数据库名称:
Declare @Value varchar(100)='Test'
DECLARE @SQL NVARCHAR(MAX)
SELECT @SQL='Select * from ' + QUOTENAME(name) + '.[sys].[all_columns];'
FROM master.dbo.sysdatabases
WHERE name=@Value
EXECUTE sp_executesql @SQL
答案 1 :(得分:0)
尝试使用SQLCMD Mode
。在SSMS中,单击Query -> SQLCMD Mode
:
:setvar dbname "YourDB"
SELECT * FROM $(dbName).dbo.YourTable