CRLF sequence as default parameter value in stored procedure

I want the stored procedure in SQL Server 2008 to have a default value set for one of its parameters. I want this value to be a CRLF sequence. Obviously, SQL Server does not allow me to do this:

CREATE PROCEDURE SomeProc
   @arg1 nvarchar(2) = CHAR(13) + CHAR(10),
   @arg2
...

I know that I could write this sequence simply as:

CREATE PROCEDURE SomeProc
   @arg1 nvarchar(2) = '
',
   @arg2
...

but it seems ... not quite right. What if I send this script to someone via email and the CRLF is converted to LF? Or some place accidentally added? Or finally, what if I need a different sequence (let it be any Unicode character)?

, , CREATE PROCEDURE .

EXEC .

ASCII/Unicode ?

+4
1

:

CREATE PROCEDURE dbo.SomeProc
   @arg1 nvarchar(2) =  0x0D000A00 --CHAR(13) + CHAR(10)

"":

CREATE PROCEDURE dbo.SomeProc
   @arg1 nvarchar(2) =  0x0D000A00 
AS    
declare @v nvarchar(2) = CHAR(13) + CHAR(10)

IF @arg1 = @v
select 'is equal'
ELSE
select 'is not equal'
GO

EXEC dbo.SomeProc

, , - :

declare  @arg1 nvarchar(2) = CHAR(13) + CHAR(10)
select cast(@arg1 as varbinary(max))

:

0x0D000A00
+1

All Articles