SQL 2000: Para que sirve la N?

29/01/2008 - 04:35 por Juan Carlos Mendoza | Informe spam
En una consulta anterior me pasaron este ejemplo:

SELECT @sql N' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
N' WHERE LastUpdated BETWEEN @fromdate AND ' +
N' coalesce(@todate, ''99991231'')'
SELECT @params = N'@fromdate datetime, ' +
N'@todate datetime = NULL, ' +
N'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

le quite la N y dejo de funcionar.

SELECT @sql ' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
' WHERE LastUpdated BETWEEN @fromdate AND ' +
' coalesce(@todate, ''99991231'')'
SELECT @params = '@fromdate datetime, ' +
'@todate datetime = NULL, ' +
'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

busco en los BOL pero no encuentro una explicacion clara sobre el
proposito de este caracter especial.

Saludos,

Juan Carlos

Preguntas similare

Leer las respuestas

#1 Morgan
29/01/2008 - 08:27 | Informe spam
Busca en la BOL la Referencia de Transact-SQL "sp_executesql" biene
perefectamente explicado su uso.

Saludos ... Morgan 8-)
This posting is provided "AS IS" with no warranties, and confers no rights.

"Juan Carlos Mendoza" escribió en el mensaje de
noticias
news:
En una consulta anterior me pasaron este ejemplo:

SELECT @sql > N' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
N' WHERE LastUpdated BETWEEN @fromdate AND ' +
N' coalesce(@todate, ''99991231'')'
SELECT @params = N'@fromdate datetime, ' +
N'@todate datetime = NULL, ' +
N'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

le quite la N y dejo de funcionar.

SELECT @sql > ' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
' WHERE LastUpdated BETWEEN @fromdate AND ' +
' coalesce(@todate, ''99991231'')'
SELECT @params = '@fromdate datetime, ' +
'@todate datetime = NULL, ' +
'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

busco en los BOL pero no encuentro una explicacion clara sobre el
proposito de este caracter especial.

Saludos,

Juan Carlos
Respuesta Responder a este mensaje
#2 Jesús López
29/01/2008 - 10:25 | Informe spam
El prefijo N indica que la cadena literal que viene a continuación es
unicode. Los parámetros de sp_executesql son de tipo nvarchar, o sea
unicode, por eso si quitas la N no funciona al pasarle parámetros de tipo
incorrecto.





"Juan Carlos Mendoza" escribió en el mensaje
news:
En una consulta anterior me pasaron este ejemplo:

SELECT @sql > N' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
N' WHERE LastUpdated BETWEEN @fromdate AND ' +
N' coalesce(@todate, ''99991231'')'
SELECT @params = N'@fromdate datetime, ' +
N'@todate datetime = NULL, ' +
N'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

le quite la N y dejo de funcionar.

SELECT @sql > ' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
' WHERE LastUpdated BETWEEN @fromdate AND ' +
' coalesce(@todate, ''99991231'')'
SELECT @params = '@fromdate datetime, ' +
'@todate datetime = NULL, ' +
'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

busco en los BOL pero no encuentro una explicacion clara sobre el
proposito de este caracter especial.

Saludos,

Juan Carlos
Respuesta Responder a este mensaje
#3 Rolando
31/01/2008 - 12:52 | Informe spam
Hola todos, veo que en SQL 2005 pone al uno crear un campo en una tabla en
el SQL Management Studio, lo pone con tipo nchar o nvarchar. Es
recomendado usar esos tipos en vez de char o varchar ? por que?

"Jesús López" escribió en el
mensaje news:
El prefijo N indica que la cadena literal que viene a continuación es
unicode. Los parámetros de sp_executesql son de tipo nvarchar, o sea
unicode, por eso si quitas la N no funciona al pasarle parámetros de tipo
incorrecto.





"Juan Carlos Mendoza" escribió en el mensaje
news:
En una consulta anterior me pasaron este ejemplo:

SELECT @sql >> N' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
N' WHERE LastUpdated BETWEEN @fromdate AND ' +
N' coalesce(@todate, ''99991231'')'
SELECT @params = N'@fromdate datetime, ' +
N'@todate datetime = NULL, ' +
N'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

le quite la N y dejo de funcionar.

SELECT @sql >> ' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
' WHERE LastUpdated BETWEEN @fromdate AND ' +
' coalesce(@todate, ''99991231'')'
SELECT @params = '@fromdate datetime, ' +
'@todate datetime = NULL, ' +
'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

busco en los BOL pero no encuentro una explicacion clara sobre el
proposito de este caracter especial.

Saludos,

Juan Carlos




Respuesta Responder a este mensaje
#4 Rolando
31/01/2008 - 17:32 | Informe spam
Perdon... lo postee mal... Ya lo repostee correctamente luego.

"Rolando" escribió en el mensaje
news:eMcTF$$
Hola todos, veo que en SQL 2005 pone al uno crear un campo en una tabla en
el SQL Management Studio, lo pone con tipo nchar o nvarchar. Es
recomendado usar esos tipos en vez de char o varchar ? por que?

"Jesús López" escribió en el
mensaje news:
El prefijo N indica que la cadena literal que viene a continuación es
unicode. Los parámetros de sp_executesql son de tipo nvarchar, o sea
unicode, por eso si quitas la N no funciona al pasarle parámetros de tipo
incorrecto.





"Juan Carlos Mendoza" escribió en el mensaje
news:
En una consulta anterior me pasaron este ejemplo:

SELECT @sql >>> N' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
N' WHERE LastUpdated BETWEEN @fromdate AND ' +
N' coalesce(@todate, ''99991231'')'
SELECT @params = N'@fromdate datetime, ' +
N'@todate datetime = NULL, ' +
N'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

le quite la N y dejo de funcionar.

SELECT @sql >>> ' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
' WHERE LastUpdated BETWEEN @fromdate AND ' +
' coalesce(@todate, ''99991231'')'
SELECT @params = '@fromdate datetime, ' +
'@todate datetime = NULL, ' +
'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT

busco en los BOL pero no encuentro una explicacion clara sobre el
proposito de este caracter especial.

Saludos,

Juan Carlos








email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida