gpt4 book ai didi

sql - 为什么这个动态 SQL 语句会失败?

转载 作者:行者123 更新时间:2023-12-05 00:53:58 25 4
gpt4 key购买 nike

这没有任何问题:

select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE 
from [AdventureWorks2012].INFORMATION_SCHEMA.COLUMNS WHERE table_name='employee';

但是,当它移动到动态语句时,它总是失败:

begin
DECLARE @sqlstatement VARCHAR(MAX);
DECLARE @TableName varchar(max)='employee';

set @sqlstatement='select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE
from [AdventureWorks2012].INFORMATION_SCHEMA.COLUMNS WHERE table_name='+@TableName;
print (@sqlstatement);
EXECUTE(@sqlstatement);

end

错误说:无效的列名'employee'

最佳答案

你应该用单引号把它包起来,因为 table_name 列是字符串,

set @sqlstatement='select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE
from [AdventureWorks2012].INFORMATION_SCHEMA.COLUMNS WHERE table_name='''+@TableName+'''';

关于sql - 为什么这个动态 SQL 语句会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16908027/

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