Есть ли лучший способ программного доступа к таблицам с помощью SQL - PullRequest
0 голосов
/ 08 июня 2011

Использование 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

По сути, я пытаюсьсоздать простой инструмент Mapping для операций CRUD, чтобы мне требовался только один Sproc для каждой операции, и я мог бы передать свой параметризованный объект, имя таблицы и позволить базе данных сделать все остальное.Это чисто для моего личного образования, поэтому я не использую установленную платформу, поэтому, если у меня есть какие-то серьезные проблемы с моей идеей или кодом выше, я был бы признателен, если бы я знал.

Спасибо

1 Ответ

0 голосов
/ 08 июня 2011

Это полный пример создания 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'

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...