我需要在 Web 应用程序上编写查询引擎,需要完成的是用户可以SELECT
在文本框中输入任何语句,然后将结果创建到新表中。
这是我创建的函数,但它只支持 SQL Server 2012,我想要类似于这个函数,但它应该支持 SQL Server 2005 及更高版本:
CREATE FUNCTION [dbo].[CustomQueryTableCreation]
(
@TableName varchar(max),
@sql NVARCHAR(MAX)
)
RETURNS
@TableBuilder TABLE
(
DS varchar(max)
)
BEGIN
INSERT INTO @TableBuilder
SELECT 'CREATE TABLE dbo.' + @TableName+'(';
INSERT INTO @TableBuilder
SELECT
CASE column_ordinal
WHEN 1 THEN '' ELSE ',' END
+ name + ' ' + system_type_name + CASE is_nullable
WHEN 0 THEN ' not null' ELSE '' END
FROM
sys.dm_exec_describe_first_result_set
(
@sql, NULL, 0
) AS f
ORDER BY
column_ordinal;
INSERT INTO @TableBuilder
SELECT ');';
RETURN
END
我现在想要做的是我想搜索我的查询并将 FIRST 替换FROM
为INTO NewTable FROM
.
查询可以包含多个连接。
我应该用 SQL 还是 C# 来控制它?