Is there a method or procedure name that will let me know if a word is a sql
server reserved word?
i.e.
sp_isReservedWord 'Null' --returns true
sp_isReservedWord 'Count' --returns true
sp_isReservedWord 'OrderNumber' --returns falseJI,
If you trust the list in SQL Server 2005 Books Online, this will work.
It may not be what you had in mind, but I hope it helps.
create function usp_reserved(
@.w nvarchar(128)
) returns bit as begin
set @.w = '|'+UPPER(REPLACE(@.w,'|',''))+'|'
if len(@.w) = 0 return 0
return
cast(charindex(@.w,
'|ADD|EXCEPT|PERCENT|ALL|EXEC|PLAN|ALTER
'+
'|EXECUTE|PRECISION|AND|EXISTS|PRIMARY|A
NY'+
'|EXIT|PRINT|AS|FETCH|PROC|ASC|FILE|PROC
EDURE'+
'|AUTHORIZATION|FILLFACTOR|PUBLIC|BACKUP
|FOR'+
'|RAISERROR|BEGIN|FOREIGN|READ|BETWEEN|F
REETEXT'+
'|READTEXT|BREAK|FREETEXTTABLE|RECONFIGU
RE'+
'|BROWSE|FROM|REFERENCES|BULK|FULL|REPLI
CATION'+
'|BY|FUNCTION|RESTORE|CASCADE|GOTO|RESTR
ICT'+
'|CASE|GRANT|RETURN|CHECK|GROUP|REVOKE'+
'|CHECKPOINT|HAVING|RIGHT|CLOSE|HOLDLOCK
'+
'|ROLLBACK|CLUSTERED|IDENTITY|ROWCOUNT|C
OALESCE'+
'|IDENTITY_INSERT|ROWGUIDCOL|COLLATE|IDE
NTITYCOL'+
'|RULE|COLUMN|IF|SAVE|COMMIT|IN|SCHEMA|C
OMPUTE'+
'|INDEX|SELECT|CONSTRAINT|INNER|SESSION_
USER'+
'|CONTAINS|INSERT|SET|CONTAINSTABLE|INTE
RSECT'+
'|SETUSER|CONTINUE|INTO|SHUTDOWN|CONVERT
|IS'+
'|SOME|CREATE|JOIN|STATISTICS|CROSS|KEY'
+
'|SYSTEM_USER|CURRENT|KILL|TABLE|CURRENT
_DATE'+
'|LEFT|TEXTSIZE|CURRENT_TIME|LIKE|THEN'+
'|CURRENT_TIMESTAMP|LINENO|TO|CURRENT_US
ER'+
'|LOAD|TOP|CURSOR|NATIONAL||TRAN|DATABAS
E'+
'|NOCHECK|TRANSACTION|DBCC|NONCLUSTERED'
+
'|TRIGGER|DEALLOCATE|NOT|TRUNCATE|DECLAR
E'+
'|NULL|TSEQUAL|DEFAULT|NULLIF|UNION|DELE
TE'+
'|OF|UNIQUE|DENY|OFF|UPDATE|DESC|OFFSETS
'+
'|UPDATETEXT|DISK|ON|USE|DISTINCT|OPEN|U
SER'+
'|DISTRIBUTED|OPENDATASOURCE|VALUES|DOUB
LE'+
'|OPENQUERY|VARYING|DROP|OPENROWSET|VIEW
|DUMMY'+
'|OPENXML|WAITFOR|DUMP|OPTION|WHEN|ELSE|
OR'+
'|WHERE|END|ORDER|WHILE|ERRLVL|OUTER|WIT
H'+
'|ESCAPE|OVER|WRITETEXT|') as bit)
end
go
select dbo.usp_reserved('ESCAPE')
select dbo.usp_reserved('AD')
select dbo.usp_reserved('ADD')
select dbo.usp_reserved('ADD|EXCEPT')
go
-- drop function usp_reserved
-- Steve Kass
-- Drew University
JI wrote:
>Is there a method or procedure name that will let me know if a word is a sq
l
>server reserved word?
>i.e.
>sp_isReservedWord 'Null' --returns true
>sp_isReservedWord 'Count' --returns true
>sp_isReservedWord 'OrderNumber' --returns false
>
>|||Thanks Steve...That saved me some cut and pasting from the BOL.
It would be a nice feature for the SQL team to write, simply to have them
maintain the list.
Thanks again,
ji
"Steve Kass" <skass@.drew.edu> wrote in message
news:%236tHIeaaGHA.3612@.TK2MSFTNGP03.phx.gbl...
> JI,
> If you trust the list in SQL Server 2005 Books Online, this will work.
> It may not be what you had in mind, but I hope it helps.
> create function usp_reserved(
> @.w nvarchar(128)
> ) returns bit as begin
> set @.w = '|'+UPPER(REPLACE(@.w,'|',''))+'|'
> if len(@.w) = 0 return 0
> return
> cast(charindex(@.w,
> '|ADD|EXCEPT|PERCENT|ALL|EXEC|PLAN|ALTER
'+
> '|EXECUTE|PRECISION|AND|EXISTS|PRIMARY|A
NY'+
> '|EXIT|PRINT|AS|FETCH|PROC|ASC|FILE|PROC
EDURE'+
> '|AUTHORIZATION|FILLFACTOR|PUBLIC|BACKUP
|FOR'+
> '|RAISERROR|BEGIN|FOREIGN|READ|BETWEEN|F
REETEXT'+
> '|READTEXT|BREAK|FREETEXTTABLE|RECONFIGU
RE'+
> '|BROWSE|FROM|REFERENCES|BULK|FULL|REPLI
CATION'+
> '|BY|FUNCTION|RESTORE|CASCADE|GOTO|RESTR
ICT'+
> '|CASE|GRANT|RETURN|CHECK|GROUP|REVOKE'+
> '|CHECKPOINT|HAVING|RIGHT|CLOSE|HOLDLOCK
'+
> '|ROLLBACK|CLUSTERED|IDENTITY|ROWCOUNT|C
OALESCE'+
> '|IDENTITY_INSERT|ROWGUIDCOL|COLLATE|IDE
NTITYCOL'+
> '|RULE|COLUMN|IF|SAVE|COMMIT|IN|SCHEMA|C
OMPUTE'+
> '|INDEX|SELECT|CONSTRAINT|INNER|SESSION_
USER'+
> '|CONTAINS|INSERT|SET|CONTAINSTABLE|INTE
RSECT'+
> '|SETUSER|CONTINUE|INTO|SHUTDOWN|CONVERT
|IS'+
> '|SOME|CREATE|JOIN|STATISTICS|CROSS|KEY'
+
> '|SYSTEM_USER|CURRENT|KILL|TABLE|CURRENT
_DATE'+
> '|LEFT|TEXTSIZE|CURRENT_TIME|LIKE|THEN'+
> '|CURRENT_TIMESTAMP|LINENO|TO|CURRENT_US
ER'+
> '|LOAD|TOP|CURSOR|NATIONAL||TRAN|DATABAS
E'+
> '|NOCHECK|TRANSACTION|DBCC|NONCLUSTERED'
+
> '|TRIGGER|DEALLOCATE|NOT|TRUNCATE|DECLAR
E'+
> '|NULL|TSEQUAL|DEFAULT|NULLIF|UNION|DELE
TE'+
> '|OF|UNIQUE|DENY|OFF|UPDATE|DESC|OFFSETS
'+
> '|UPDATETEXT|DISK|ON|USE|DISTINCT|OPEN|U
SER'+
> '|DISTRIBUTED|OPENDATASOURCE|VALUES|DOUB
LE'+
> '|OPENQUERY|VARYING|DROP|OPENROWSET|VIEW
|DUMMY'+
> '|OPENXML|WAITFOR|DUMP|OPTION|WHEN|ELSE|
OR'+
> '|WHERE|END|ORDER|WHILE|ERRLVL|OUTER|WIT
H'+
> '|ESCAPE|OVER|WRITETEXT|') as bit)
> end
> go
> select dbo.usp_reserved('ESCAPE')
> select dbo.usp_reserved('AD')
> select dbo.usp_reserved('ADD')
> select dbo.usp_reserved('ADD|EXCEPT')
> go
> -- drop function usp_reserved
> -- Steve Kass
> -- Drew University
> JI wrote:
>
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment