2011-02-23 48 views
0

我想编写示例过程来计算特定表中存在的记录,这里我将从文本文件中获取表名称。 佛罗里达州我只是写示例程序从文本文件中获取th表名称和存储在电表中,但是当我分配和传递表名称我无法做到这一点可以任何人建议如何做到这一点,简单的例子如何在T-SQL中动态地传递表名称

+0

这不是你应该在T-SQL中做的事情。如果你想组装查询,你应该在中间层组件中完成。 – Thomas 2011-02-23 06:34:30

回答

2

您可以使用表名参数构建动态sql,并使用EXEC执行它,如下所示。

Create procedure Proc1 
@TableName varchar(MAX) 
as 
.. 
... 
DECLARE @sqltxt varchar(1000) 
select @sqltxt = 'select count(*) from ' + quotename(@TableName) 
exec (@sqltxt) 
... 
... 
+1

如果你打算这样做,你应该使用'Quotename':'Set @sqltxt ='Select ... From'+ Quotename(@TableName)'。 – Thomas 2011-02-23 06:35:31

+0

exec(@sql)应该是exec(@sqltxt) – Kashif 2011-02-23 06:36:03

+0

@Muhammad - 更正了我的答案 – 2011-02-23 06:56:40