SQL Server
позволяет опустить одинарные кавычки для параметров строки из одного слова:
Это выдаст test
:
CREATE PROCEDURE prc_test (@objname NVARCHAR(255))
AS
BEGIN
SELECT @objname
END
prc_test test
, однако это не удастся:
prc_Test Cannot_insert_a_dot.here
Здесь test
- это краткая форма 'test'
(обратите внимание на одинарные кавычки).
SP_HELP
- это хранимая процедура, которая ожидает параметр VARCHAR
, тогда как EXECUTE
ожидает идентификатор объекта (частью базы данных которого является допустимая часть)
exec dbo.MyProc
Всегда заключайте свои строковые константы в одинарные кавычки, и может быть хорошей идеей заключать имена объектов в скобки:
EXEC [dbo].[myproc]