0

I am looking to see if it is possible at all to allow to have anyone at all either push an Excel file or anything like that, into the following statement:

WHERE FM.ClientsFileNumber IN (
'599554607'

)

I want to be able to have anyone input File numbers into that without giving them access to SQL.

4

2 回答 2

1

您可以使用 SSRS(不是最好的)为用户提供基本的条目选择,使用插入存储过程,然后将参数作为要插入的值传递。不是最优雅的,但由于我缺乏 .net 和 c#,我发现它工作得很好。

这就是让我开始的原因。

于 2013-10-15T14:11:24.233 回答
0

1) Gavlaaa 对 SQL Server Reporting Services (SSRS) 的建议可能比使用 Excel 作为输入更方便用户...

((PS我没有尝试过,但这表明您可以使用Excel作为SSRS的输入:http: //www.codeproject.com/Questions/449194/How-to-import-Excel-data-as-input-in -SSRS ))

2)但以防万一您真的想使用 Excel 作为输入...考虑 SSIS(SQL Server 集成服务)——我们使用什么。

此建议假定您使用的是 SQL Server 2005 或更高版本。(如果您使用的是 SQL Server 2000,则应使用 DTS 而不是 SSIS。)

SSIS 允许您将 Excel 电子表格导入 SQL 数据库、表中。然后,您可以执行 T-SQL 命令(如 SELECT INTO)来创建新表,然后再次导出到 Excel。(((我们使用 SSIS 导入 Excel,使用 T-SQL 验证和格式化,并导出以验证和预格式化产品数据......然后将其导出为精确的格式以进行编程加载。))

但是,SSIS 希望导入的 Excel 电子表格采用可预测的格式:例如,一列没有小数的数字,或者总是有两个小数点……等等。如果您有额外的列,它们将被跳过(使用元数据警告);如果您的列太少,文件可能会意外导入(无法导入,或者至少是元数据警告);如果该列是不同的格式(例如,假定小数时没有小数),那么 SSIS 可能会变得非常奇怪,例如在某些但不是所有行上导入带有空值的该列(在这些情况下没有元数据警告) .

因此,从 Excel 导入 SSIS 时,一致的列格式很重要。((我们通过在最初导入的 Excel 输入电子表格中将所有列设为纯文本/无格式,然后在需要时将 T-SQL 转换为特定数据类型,然后再导出到 Excel 输出来简化这一点。))

要了解有关 SSIS 的更多信息,请尝试以下链接:http: //msdn.microsoft.com/en-us/library/ms137709 (SQL.90).aspx

要尝试使用 SSIS 的简单方法,请使用导入/导出向导:在 SSMS (SQL Server Management Studio) 中,右键单击您的一个数据库,选择“任务”,然后选择“导出数据”。在第二个对话框(“选择目标”)上,滚动到“目标”下拉列表顶部附近并找到 Excel....,然后在“保存并执行包”对话框中,选择“保存 SSIS 包”,然后为现在(为了简单起见)选择“文件系统”单选按钮...将您的 SSIS 包保存为 windows 文件。

我可以说更多...如果您对 SSIS 感兴趣。

3)如果您仍然有某些理由实际更改 SQL 命令中的 WHERE 子句,您可以构建一个 SELECT 语句,然后使用 EXEC 命令执行它:
http ://technet.microsoft.com/en-us/library/ ms188332%28v=sql.90%29.aspx

于 2013-10-15T14:45:00.370 回答