Mengapa saya mendapatkan kesalahan ini
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
ketika saya mencoba menggunakan sp_executesql?
Mengapa saya mendapatkan kesalahan ini
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
ketika saya mencoba menggunakan sp_executesql?
Jawaban:
Kedengarannya seperti Anda memanggil sp_executesql dengan pernyataan VARCHAR, jika itu membutuhkan NVARCHAR.
misalnya Ini akan memberikan kesalahan karena @SQL harus NVARCHAR
DECLARE @SQL VARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL
Begitu:
DECLARE @SQL NVARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL
Solusinya adalah dengan meletakkan N di depan tipe dan string SQL untuk menunjukkan itu adalah string karakter byte ganda:
DECLARE @SQL NVARCHAR(100)
SET @SQL = N'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL