gpt4 book ai didi

sql - 验证 T-SQL 查询的方法?

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

我可以访问 Access 数据库,并且在该数据库中包含填充了 TSQL 查询的字段。这些查询由服务器上的 T-SQL 处理。因此,当我编写这些 SQL 查询并将它们放入一个字段以供终端服务器使用时,我无法验证语法/等。我可以在该 Access 数据库中创建一个临时查询,但它不是相同的查询语言。例如,Access 将正确使用 IIF但 TSQL 不会(而是 CASE )。

我无法使用 TSQL 直接访问此服务器,有什么方法可以验证我的 T-SQL 查询(语法等)?也许是在线网络工具?

我应该注意我无权访问 SQL 服务器。只有 Access db 和那个。我知道它不会验证表名等,我不希望它。

最佳答案

实际上,MattMc3 的答案和 FremenFreedom 的答案的组合应该有效。

下载 SQL Express。

然后,声明以下存储过程:

create procedure IsValidSQL (@sql varchar(max)) as
begin
begin try
set @sql = 'set parseonly on;'+@sql;
exec(@sql);
end try
begin catch
return(1);
end catch;
return(0);
end; -- IsValidSQL

您可以使用以下方法对其进行测试:
declare @retval int;
exec @retval = IsValidSQL 'select iif(val, 0, 1) from t';
select @retval

或与:
declare @retval int;
exec @retval = IsValidSQL 'select val from t';
select @retval

注意:这将捕获 IIF() 问题。它不会捕获与表结构或列结构相关的任何内容。您需要为此使用架构,而稍微不同的方法(“select top 0 * from () t”)可以做到。

您也许可以在线使用 SQL Fiddle 做一些事情。但是,我建议拥有数据库的本地副本。

关于sql - 验证 T-SQL 查询的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13316328/

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