有没有更好的方法以编程方式使用SQL访问表

时间:2011-06-08 09:43:06

标签: tsql stored-procedures

目前使用MS SQL2000,如果这有任何区别。

有没有比下面的方法更好的方法能够以编程方式访问表格?

declare @tableName as varchar(50)
declare @sql varchar(4000)

set @tableName = 'User'

print @tableName

If EXISTS(
select TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_name = ''+@TableName+''
)
BEGIN
    set @sql = 'select * from [' + @tableName + ']'
    exec(@sql)

end

基本上我试图为CRUD操作创建一个简单的Mapping工具,这样我每个操作只需要一个Sproc,并且我可以传入我的参数化对象,一个表名,让数据库完成剩下的工作。这纯粹是为了我自己的个人教育,因此我没有使用既定的框架,所以如果我的想法或上面的代码有任何重大问题,我也会很感激。

由于

1 个答案:

答案 0 :(得分:0)

这是按照初始代码创建SP的完整示例:

CREATE PROCEDURE dbo.CustomSelect (@tableName as varchar(50))
AS 
SET NOCOUNT ON
DECLARE @sql varchar(4000)

If EXISTS(
select TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_name = @tableName
)
BEGIN
    set @sql = 'select 1 as Found, * from [' + @tableName + ']'
    exec(@sql)
END
ELSE
BEGIN
    select 0 as Found
END

此SP 始终返回记录集,因此您可以检查the value of the field FOUND以了解该表是否存在

<强>用法:

EXEC CustomSelect 'User'

希望有所帮助