powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как передать имя таблицы через параметр ХП?
12 сообщений из 12, страница 1 из 1
Как передать имя таблицы через параметр ХП?
    #32047387
Alex_VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаю новую таблицу, и хочу присвоить имя таблицы с помощью параметра ХП...
Пишу:
CREATE PROCEDURE dbo.sp_NewTable
@NameTable nvarchar
AS

CREATE TABLE [dbo].@NameTable
...

Выдает ошибку

Как присвоить имени новой таблицы значение параметра ХП???
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047392
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE PROCEDURE dbo.sp_NewTable 
  @NameTable nvarchar( 100 )
AS
SET NOCOUNT ON
EXEC('CREATE TABLE [dbo].' + @NameTable + '(id int)')
RETURN  0 


P.S. префикс sp_ лучше не использовать, если это не требуется
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047405
Alex_VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выполняю, но SQL Server выдает ошибку:

"Error 21037: The Name specified in the Text property's 'CREATE... ' statement must match the Name property, and must be followed by valid TSQL statements."
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047409
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь код в студию, плиз.
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047412
Alex_VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так я Ваш код и использую...

CREATE PROCEDURE dbo.sp_NewTable
@NameTable nvarchar(100)
AS
SET NOCOUNT ON
EXEC('CREATE TABLE [dbo].' + @NameTable + '(id int)')
RETURN 0
GO
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047414
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробел вставьте перед (id int): EXEC('CREATE TABLE [dbo].' + @NameTable + ' (id int)')
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047417
Alex_VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
он там есть.
Самое интересное - проверку на синтаксис проходит успешно, а вот "Apply" не хочет выполнять.
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047419
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выполнить из Query Analyzer:

Код: plaintext
EXEC dbo.sp_NewTable 'test'


Пробел тут не влияет (может в SQL-DMO?)
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047421
Alex_VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, ошибка SQL-DMO

"Error 21037 (SQL-DMO): ......."

Что делать?
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047422
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если работает в QA, то запустите Profiler и посмотрите что DMO делает...
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047426
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня сработал код нормально.

@@version:
Microsoft SQL Server 7.00 - 7.00.623 (Intel X86) Nov 27 1998 22:20:07 Copyright (c) 1988-1998 Microsoft Corporation Standard Edition on Windows NT 4.0 (Build 1381: Service Pack 6)
...
Рейтинг: 0 / 0
Как передать имя таблицы через параметр ХП?
    #32047447
Alex_VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, особенно Jimmers!!!
Все работает, просто я пытался сохранить текст этой процедуры в старой.
А когда просто создал новую и ввел туда этот же текст, все заработало.
Еще раз благодарю..

Но есть еще вопрос: могу я в этой вновь созданной таблице определить такие же индексы, связи и ключи, которые определены в другой таблице?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как передать имя таблицы через параметр ХП?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]